如何将自定义清理应用于新用户名?

时间:2017-10-23 作者:lofidevops

我有一个WooCommerce模块代表我创建Wordpress用户名。我想确保这些用户名按照我的规则进行清理,这比Wordpress的要求更严格。

如何挂接/覆盖sanitize_user 使用我的自定义规则?

1 个回复
最合适的回答,由SO网友:Celso Bessa 整理而成

sanitize_user 函数具有sanitize_user 滤器该过滤器为您提供$username、$raw\\u username、$strictsanitize_user 根据内联文档,希望您返回$username:

/**
* Filters a sanitized username string.
*
* @since 2.0.1
*
* @param string $username     Sanitized username.
* @param string $raw_username The username prior to sanitization.
* @param bool   $strict       Whether to limit the sanitization to specific characters. Default false.
*/
您可以执行以下操作:

function wpse_283736_sanitize_user_filter($username){
    // do your sanitization with $username
    return $username;
}
add_filter(\'sanitize_user\', \'wpse_283736_sanitize_user_filter\');
或者像这样

function wpse_283736_sanitize_user_filter($username, $raw_username, $strict){
    // do your sanitization with $username or maybe $raw_username
    return $username; // or return $raw_username;
}
add_filter(\'sanitize_user\', \'wpse_283736_sanitize_user_filter\', 10, 3);
你可以钓到pre_user_login 过滤器,在上可用wp_insert_user 函数,用于Woocommerce用户注册过程。

$pre_user_login = apply_filters( \'pre_user_login\', $sanitized_user_login );

function wpse_283736_pre_user_login_filter($sanitized_user_login){
    // do your sanitization with $sanitized_user_login
    return $sanitized_user_login;
}
add_filter(\'pre_user_login\', \'wpse_283736_pre_user_login_filter\', 10, 3);
如果您不熟悉WordPress过滤器,我建议您先阅读以下参考资料:

结束

相关推荐

Use mulitple usernames?

为了安全起见,我是否可以将wordpress配置为使用两个数据库用户名,一个用于读取(在数据库中具有只读权限),另一个用于发布(隐藏在受保护的wp admin目录中)?关键是,即使有人入侵wordpress,他们也不会被允许做任何伤害。