如果我们希望重置密码表单如下所示:
然后我们可以使用以下挂钩:
/**
* Modify the password hint
*/
add_filter( \'password_hint\', function( $hint )
{
return __( \'Use upper and lower case letters, numbers, and symbols like ! " ? $ % ^ & ).\' );
} );
/**
* Modify \'New password\' text
*/
add_action( \'validate_password_reset\', function( $errors )
{
add_filter( \'gettext\', \'wpse_gettext\', 10, 2 );
return $message;
});
/**
* Modify \'Log in\' text
*/
add_action( \'resetpass_form\', function()
{
add_filter( \'gettext\', \'wpse_gettext\', 10, 2 );
});
The
wpse_gettext
助手函数定义为:
function wpse_gettext( $translated_text, $text )
{
// Modify gettext if there\'s a match
switch ( $text )
{
case \'New password\' :
remove_filter( current_filter(), __FUNCTION__ );
$translated_text = __( \'Use this password, or type a new one over it\' );
break;
case \'Log in\' :
remove_filter( current_filter(), __FUNCTION__ );
$translated_text = __( \'Already registered before? Click here to log-in\' );
$match = true;
default:
}
return $translated_text;
}
在这里,我们将在过滤器回调使用一次后立即将其删除。
我们还尝试钩住附近的钩子,以尽量减少gettext
检查。
还要注意使用gettext
中的功能gettext
过滤器;-)
所以我把remove_filter
高于__()
调用,以避免无限循环。