My Wordpress isteは現在、ユーザーの識別情報を自分のFIRSTNAME + LASTNAMEで表示しています。
大多数は彼らのユーザー名で知られることを好みます。私は自分の "表示名を公に"に手動で変更する方法を説明しましたが、これは理想的とは言えません。
新しいユーザーがデフォルトで自動的にユーザー名で表示されるようにします。私はこれを "Display Name Publicly As"プロパティを参照するいくつかのプラグインに反映させたいと思います。
どうすればこれができますか?
将来のすべてのユーザーがこれを望むのであれば、 user_register
イベントにフックして更新してください。
WP_User
を使用して get_userdata
および wp_update_user
情報を新しい表示名で取得します。
add_action( 'user_register', 'wpse_20160110_user_register', 10, 1 );
function wpse_20160110_user_register ( $user_id ) {
// get the user data
$user_info = get_userdata( $user_id );
// pick our default display name
$display_publicly_as = $user_info->user_login;
// update the display name
wp_update_user( array ('ID' => $user_id, 'display_name' => $display_publicly_as));
}
毎回ログインを設定したい場合は wp_login
using PHP_INT_MAX
をフックしてください。
function wpse_20160110_wp_login ( $user_login, $user ) {
wp_update_user(array('ID' => $user->ID, 'display_name' => $user_login));
}
add_action('wp_login', 'wpse_20160110_wp_login', PHP_INT_MAX, 2);
登録とプロファイルの更新の両方で表示名をプログラムで設定し、無限ループを回避するために、Bettyが経験したように、表示名がすでに必要に応じて設定されているかどうかを確認する必要があります。
add_action( 'user_register', 'set_login_as_displayname' );
add_action( 'profile_update', 'set_login_as_displayname' );
function set_login_as_displayname( $user_id )
{
$data = get_userdata( $user_id );
if ($data->user_login != $data->display_name) {
wp_update_user( array ('ID' => $user_id, 'display_name' => $data->user_login));
}
}