更改WordPress默认注册错误文本[错误:此用户名无效,因为它使用了非法字符。请输入有效的用户名。]

时间:2021-07-07 作者:Liang

我可以知道如何更改错误文本吗?例如,我想更改它。

[错误:此用户名无效,因为它使用非法字符。请输入有效的用户名。]

[错误:用户名无效。请输入有效的用户名。]

enter image description here

2 个回复
最合适的回答,由SO网友:Aboelabbas 整理而成

您可以通过\'registration_errors\' 过滤器挂钩。钩子过滤保存所有当前错误的WP\\u Error对象。使用的代码如下所示:

add_filter( \'registration_errors\', function( $errors ){
    if( $errors->get_error_messages( \'invalid_username\' ) ) {
        $errors->remove(\'invalid_username\');
        $errors->add(\'invalid_username\', \'<strong>Error</strong>: My custom error message\');
    }
    return $errors;
});
Please note 我们通过其代码检查目标错误消息的存在;\\u用户名无效;,但是,如果在“非法用户登录”数组中发现此代码,则该代码可能包含不同的用户名消息,该数组可能包含不允许的用户名列表,因此如果您需要不同的不允许的用户名错误消息,可以使用第二个参数$sanitized\\u user\\u登录”;检查它是否在不允许列表中,如果是,则更改错误消息。您的代码可能如下所示:

add_filter( \'registration_errors\', function( $errors, $sanitized_user_login ){
    
    if( $errors->get_error_messages( \'invalid_username\' ) ) {
        
        // Get the list of disallowed usernames
        $illegal_user_logins = array_map(\'strtolower\', (array) apply_filters( \'illegal_user_logins\', array() ));
        
        // Set our default message
        $message = \'<strong>Error</strong>: My custom error message\';
        
        // Change the message if the current username is one of the disallowed usernames
        if( in_array( strtolower( $sanitized_user_login ), $illegal_user_logins, true) ) {
            $message = \'<strong>Error</strong>: My custom error message 2\';
        }
        
        $errors->remove(\'invalid_username\');
        $errors->add(\'invalid_username\', $message);
    }
    
    return $errors;
}, 10, 2); 

SO网友:vancoder

不幸的是,您无法更改它,因为它在核心中是硬编码和未过滤的。

看见https://github.com/WordPress/WordPress/blob/master/wp-admin/includes/user.php#L185

相关推荐

用户创建的wordpress页面中的php代码将在何时以及如何执行?

我对Wordpress构建的网站中的网页加载时发生的情况的理解是,Wordpress确定要加载的帖子(页面)和模板。然后加载页面和模板。我实际上是想弄清楚,当我在基于WP的网站中单击链接时,WP是如何创建一个最终网页,并将其发送到我的浏览器的。我还试图弄清楚页面模板扮演的角色,尤其是当它基本上是空的,就像WP的默认twentytwenyone主题中的一样。我这样问是因为我通常不编辑页面模板,而是编辑页面,在页面上放置块和小部件(后者可能经常包含php代码)。这一页是我在构建一些;“常规”;网页Wordpr