如何在Pre_User_Nicename的回调函数中获取用户数据?

时间:2015-01-15 作者:uruk

每当我在仪表板中更新用户配置文件时,数据库中的用户nice名称就会发生更改:每次"-2" 已添加。

我试着reset nicename(大致基于this thread) 通过钩住edit_user_profile_updatepersonal_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登录),不会发生上述行为。谁能推我一下吗?

1 个回复
SO网友:uruk

如果有人遇到此问题,请检查是否定义了回调函数来设置user\\u登录pre_user_login. 此过滤器应用于wp_insert_user()-函数并再次生成相同的用户名。因此,通过添加"-2".

所以,我的问题是,我一次又一次地重置user\\u登录,而不是在注册时只重置一次。

结束

相关推荐

Theme Loading Into Dashboard

我有一个很奇怪的,以前从未见过的问题。。。每当我访问仪表板时,大约3-5秒后,我的主题就会加载到仪表板布局中。这就像主题的样式表以某种方式排队。。。这是我的排队钩functions.php:function myyogawebsite_scripts() { wp_enqueue_style( \'foundation-normalize\', get_template_directory_uri() . \'/css/normalize.css\' ); wp_