login_message
云策文档标注
概述
login_message 过滤器用于自定义 WordPress 登录页面上方显示的消息,支持返回 HTML 标记。开发者可通过此 Hook 根据登录页面状态动态调整提示信息。
关键要点
- 过滤器名称:login_message,参数为字符串 $message,表示登录消息文本
- 应用场景:在 wp-login.php 登录表单上方显示自定义消息,可基于 action 参数(如 register、lostpassword)条件输出
- 技术细节:使用 add_filter 注册回调函数,函数应接收并返回 $message;消息可包含 HTML 标记
- 注意事项:注意区分 login_message 与 login_messages 过滤器,后者用于其他登录相关屏幕的消息修改
代码示例
add_filter( 'login_message', 'custom_login_message' );
function custom_login_message( $message ) {
$action = isset( $_REQUEST['action'] ) ? $_REQUEST['action'] : '';
if ( $action === 'register' ) {
$message .= '<p>注册前显示的消息</p>';
}
return $message;
}
原文内容
Filters the message to display above the login form.
Parameters
$messagestring-
Login message text.
Source
$message = apply_filters( 'login_message', $message );
Changelog
| Version | Description |
|---|---|
| 2.1.0 | Introduced. |
Skip to note 7 content
Razon Komar Pal
Add additional message for
wp-login.phpadd_filter( 'login_message', 'wpdocs_sr_custom_login_message' ); function wpdocs_sr_custom_login_message( $message ) { $action = isset( $_REQUEST['action'] ) ? $_REQUEST['action'] : ''; $errors = new WP_Error(); if ( isset( $_GET['key'] ) ) { $action = 'resetpass'; } if ( isset( $_GET['checkemail'] ) ) { $action = 'checkemail'; } switch ( $action ): case 'register': $message .= '<p class="message">' . __( 'Show message before register form.', 'text_domain' ) . '</p>'; break; case 'checkemail': $message .= '<p class="message">' . __( 'Show message before after registration complete message.', 'text_domain' ) . '</p>'; break; case 'lostpassword': $message .= '<p class="message">' . __( 'Show message before lost password form.', 'text_domain' ) . '</p>'; break; default: // this message will show in login screen, before the login form. $message .= '<p class="message">' . __( 'Show message before login form.', 'text_domain' ) . '</p>'; break; endswitch; return $message; }Skip to note 8 content
Collins Mbaka
An example
function wpdocs_the_login_message( $message ) { if ( empty( $message ) ) { return '<p>Welcome to this site. Please log in to continue.</p>'; } else { return $message; } } add_filter( 'login_message', 'wpdocs_the_login_message' );Skip to note 9 content
Collins Mbaka
A plugin can register as a content filter with the code:
add_filter( 'login_message', 'wpdocs_plugin_function_name' );Skip to note 10 content
Akira Tachibana
(From Codex)
Example:
function the_login_message( $message ) { if ( empty($message) ){ return "<p>Welcome to this site. Please log in to continue</p>"; } else { return $message; } } add_filter( 'login_message', 'the_login_message' );Skip to note 11 content
EHLOVader
Expanding upon Razon Komar Pal‘s code snippet.
I found that there are a few other instances that you might wish to show a specific message or not show any additional messages if the provided one is great.
add_filter( 'login_message', function ( $message ) { $action = isset( $_REQUEST['action'] ) ? $_REQUEST['action'] : ''; if ( isset( $_GET['key'] ) ) { $action = 'resetpass'; } if ( isset( $_GET['checkemail'] ) ) { $action = 'checkemail'; } if ( isset( $_GET['interim-login'] ) ) { $action = 'interim-login'; } switch ( $action ) { case 'register': // $message .= __( 'Show message before register form.', 'text_domain' ); break; case 'checkemail': // $message .= __( 'Show message before after registration complete message.', 'text_domain' ); break; case 'lostpassword': // $message .= __( 'Show message before lost password form.', 'text_domain' ); break; case 'rp': // $message .= __( 'Show message before reset password form.', 'text_domain' ); break; case 'resetpass': // $message .= __( 'Show message after reset password form.', 'text_domain' ); break; case 'interim-login': // $message .= __( 'Show message before interim login form.', 'text_domain' ); break; default: // $message .= __( 'Show message before login form.', 'text_domain' ); break; } return $message; } );Skip to note 12 content
Anonymous User
Be careful! There is another filter, with a similar description, but applied in a different place!
https://developer.wordpress.org/reference/hooks/login_messages/
THAT filter, is for example useful when you want to change the message on the “check mail” screen after a registration.