每当我在仪表板中更新用户配置文件时,数据库中的用户nice名称就会发生更改:每次"-2" 已添加。
我试着reset nicename(大致基于this thread) 通过钩住edit_user_profile_update
和personal_options_update
, 但这似乎还为时过早,价值没有改变:
add_action( \'personal_options_update\', \'my_reset_nicename_function\' );
add_action( \'edit_user_profile_update\', \'my_reset_nicename_function\' );
function my_reset_nicename_function( $user_id ) {
$user = new WP_User( $user_id );
$nice_name = $_POST[\'first_name\'] . \' \' . $_POST[\'last_name\'];
$nice_name = sanitize_text_field( $display_name );
wp_update_user( array(
\'ID\' => $user->ID,
\'user_nicename\' => $display_name
) );
}
然后我读到
pre_user_nicename
-filter(这感觉更简洁),但任何过滤nicename的回调函数都只能将nicename作为参数获取,并且不能仅通过nicename获取用户对象:
add_filter( \'pre_user_nicename\',\'my_user_nicename_filter_function\' ) );
function my_user_nicename_filter_function( $user_nicename ) {
// How to get the user\'s firstname or lastname here?
}
那么,在仪表板中保存用户的个人资料时,如何将用户的好名字重置为他的名字和姓氏?
EDIT: 当我停用pre_user_login
回调(自动定义user\\u登录),不会发生上述行为。谁能推我一下吗?