losthost php,wp-login.php

这篇博客详细介绍了WordPress用户处理的相关功能,包括认证、注册、重置密码、忘记密码等操作。同时,它揭示了登录页面的实现细节,如如何确保使用SSL、错误处理、页面头部和尾部的输出,以及登录页面样式的加载。此外,还涉及到多站点环境下的处理和登录页面的定制选项,如标题和消息的过滤。
摘要由CSDN通过智能技术生成

/**

* WordPress User Page

*

* Handles authentication, registering, resetting passwords, forgot password,

* and other user handling.

*

* @package WordPress

*/

/** Make sure that the WordPress bootstrap has run before continuing. */

require( dirname(__FILE__) . '/wp-load.php' );

// Redirect to https login if forced to use SSL

if ( force_ssl_admin() && ! is_ssl() ) {

if ( 0 === strpos($_SERVER['REQUEST_URI'], 'http') ) {

wp_safe_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );

exit();

} else {

wp_safe_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );

exit();

}

}

/**

* Output the login page header.

*

* @param string $title Optional. WordPress login Page title to display in the `

` element.

* Default 'Log In'.

* @param string $message Optional. Message to display in header. Default empty.

* @param WP_Error $wp_error Optional. The error to pass. Default empty.

*/

function login_header( $title = 'Log In', $message = '', $wp_error = '' ) {

global $error, $interim_login, $action;

// Don't index any of these forms

add_action( 'login_head', 'wp_no_robots' );

add_action( 'login_head', 'wp_login_viewport_meta' );

if ( empty($wp_error) )

$wp_error = new WP_Error();

// Shake it!

$shake_error_codes = array( 'empty_password', 'empty_email', 'invalid_email', 'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password' );

/**

* Filters the error codes array for shaking the login form.

*

* @since 3.0.0

*

* @param array $shake_error_codes Error codes that shake the login form.

*/

$shake_error_codes = apply_filters( 'shake_error_codes', $shake_error_codes );

if ( $shake_error_codes && $wp_error->get_error_code() && in_array( $wp_error->get_error_code(), $shake_error_codes ) )

add_action( 'login_head', 'wp_shake_js', 12 );

$login_title = get_bloginfo( 'name', 'display' );

/* translators: Login screen title. 1: Login screen name, 2: Network or site name */

$login_title = sprintf( __( '%1$s ‹ %2$s — WordPress' ), $title, $login_title );

/**

* Filters the title tag content for login page.

*

* @since 4.9.0

*

* @param string $login_title The page title, with extra context added.

* @param string $title The original page title.

*/

$login_title = apply_filters( 'login_title', $login_title, $title );

?>

>

<?php echo $login_title; ?>

wp_enqueue_style( 'login' );

/*

* Remove all stored post data on logging out.

* This could be added by add_action('login_head'...) like wp_shake_js(),

* but maybe better if it's not removable by plugins

*/

if ( 'loggedout' == $wp_error->get_error_code() ) {

?>

}

/**

* Enqueue scripts and styles for the login page.

*

* @since 3.1.0

*/

do_action( 'login_enqueue_scripts' );

/**

* Fires in the login page header after scripts are enqueued.

*

* @since 2.1.0

*/

do_action( 'login_head' );

if ( is_multisite() ) {

$login_header_url = network_home_url();

$login_header_title = get_network()->site_name;

} else {

$login_header_url = __( 'https://wordpress.org/' );

$login_header_title = __( 'Powered by WordPress' );

}

/**

* Filters link URL of the header logo above login form.

*

* @since 2.1.0

*

* @param string $login_header_url Login header logo URL.

*/

$login_header_url = apply_filters( 'login_headerurl', $login_header_url );

/**

* Filters the title attribute of the header logo above login form.

*

* @since 2.1.0

*

* @param string $login_header_title Login header logo title attribute.

*/

$login_header_title = apply_filters( 'login_headertitle', $login_header_title );

/*

* To match the URL/title set above, Multisite sites have the blog name,

* while single sites get the header title.

*/

if ( is_multisite() ) {

$login_header_text = get_bloginfo( 'name', 'display' );

} else {

$login_header_text = $login_header_title;

}

$classes = array( 'login-action-' . $action, 'wp-core-ui' );

if ( is_rtl() )

$classes[] = 'rtl';

if ( $interim_login ) {

$classes[] = 'interim-login';

?>

if ( 'success' === $interim_login )

$classes[] = 'interim-login-success';

}

$classes[] =' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );

/**

* Filters the login page body classes.

*

* @since 3.5.0

*

* @param array $classes An array of body classes.

* @param string $action The action that brought the visitor to the login page.

*/

$classes = apply_filters( 'login_body_class', $classes, $action );

?>

/**

* Fires in the login page header after the body tag is opened.

*

* @since 4.6.0

*/

do_action( 'login_header' );

?>

<?php echo $login_header_text; ?>

unset( $login_header_url, $login_header_title );

/**

* Filters the message to display above the login form.

*

* @since 2.1.0

*

* @param string $message Login message text.

*/

$message = apply_filters( 'login_message', $message );

if ( !empty( $message ) )

echo $message . "\n";

// In case a plugin uses $error rather than the $wp_errors object

if ( !empty( $error ) ) {

$wp_error->add('error', $error);

unset($error);

}

if ( $wp_error->get_error_code() ) {

$errors = '';

$messages = '';

foreach ( $wp_error->get_error_codes() as $code ) {

$severity = $wp_error->get_error_data( $code );

foreach ( $wp_error->get_error_messages( $code ) as $error_message ) {

if ( 'message' == $severity )

$messages .= '' . $error_message . "
\n";

else

$errors .= '' . $error_message . "
\n";

}

}

if ( ! empty( $errors ) ) {

/**

* Filters the error messages displayed above the login form.

*

* @since 2.1.0

*

* @param string $errors Login error message.

*/

echo '

' . apply_filters( 'login_errors', $errors ) . "
\n";

}

if ( ! empty( $messages ) ) {

/**

* Filters instructional messages displayed above the login form.

*

* @since 2.5.0

*

* @param string $messages Login messages.

*/

echo '

' . apply_filters( 'login_messages', $messages ) . "

\n";

}

}

} // End of login_header()

/**

* Outputs the footer for the login page.

*

* @param string $input_id Which input to auto-focus

*/

function login_footer($input_id = '') {

global $interim_login;

// Don't allow interim logins to navigate away from the page.

if ( ! $interim_login ): ?>

<?php

/* translators: %s: site title */

printf( _x( '← Back to %s', 'site' ), get_bloginfo( 'title', 'display' ) );

?>

<?php the_privacy_policy_link( '

' ); ?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值