すべてのユーザーに名前の表示をFirstname Lastname
にするか、またはこれをデフォルトに変更することを強制できる方法はありますか。
これはユーザー登録時に設定されます。フィルタごとの値を変更することができます'user_register'
。
テストされていないサンプルコード
/* Plugin Name: First name plus last name as default display name. */
add_action( 'user_register', 'wpse_67444_first_last_display_name' );
function wpse_67444_first_last_display_name( $user_id )
{
$data = get_userdata( $user_id );
// check if these data are available in your real code!
wp_update_user(
array (
'ID' => $user_id,
'display_name' => "$data->first_name $data->last_name"
)
);
}
より良い解決策は、ユーザーが更新されるたびに表示名を更新することです。私はこの古いスレッドを頼りにしています。なぜなら、私はこの解決策をどこにも見つけられないからです。
/* First name as default display name. */
add_action( 'profile_update', 'set_display_name', 10 );
function set_display_name( $user_id ) {
$data = get_userdata( $user_id );
if($data->first_name) {
remove_action( 'profile_update', 'set_display_name', 10 ); // profile_update is called by wp_update_user, so we need to remove it before call, to avoid infinite recursion
wp_update_user(
array (
'ID' => $user_id,
'display_name' => "$data->first_name"
)
);
add_action( 'profile_update', 'set_display_name', 10 );
}
}