WordPressで、既存のすべてのユーザーの表示名(一般に表示する名前)を変更したい場合があります。 これに関連して検索してみると、 user_register フック(アクション)を使用して変更する方法が多く紹介されているが、テストしてみるとうまく動作していない。
WordPressですべてのユーザーの「一般的に表示する名前」を変更する
代わりに WordPress Change Default Display Name Publicy As First Name Last Name for all existing usersで紹介するコードを使うので、好きなように各ユーザーの「表示名」が一括変更されました。
// Change default display name publicly as to Last Name and First Name for all users add_action('admin_head','make_display_name_f_name_last_name'); function make_display_name_f_name_last_name(){ $users = get_users(array('fields'=>'all')); foreach($users as $user){ $user = get_userdata($user->ID); $display_name = $user->last_name; 。 $ user->first_name; if($display_name!=' ') wp_update_user( array ('ID' => $user->ID, 'display_name' => $display_name) ); else wp_update_user( array ('ID' => $user->ID, 'display_name' => $user->display_login) ); if($user->display_name == '') wp_update_user( array ('ID' => $user->ID, 'display_name' => $user->display_login) ); }}
上記のコードを適用すると、ユーザーの表示名が「ホンギルドン」のように「姓+名」と表示されます。
必要に応じて、表示名をメールアドレスに変更することもできます。ただし、電子メールアドレスをそのまま公開すると、個人のプライバシーの問題が発生し、スパマーのターゲットになる可能性があるため、電子メールの一部のフィールドをアスタリスクでブラインドして表示できます。 (例: [メール保護] 代わりにhonggild***@***er.comとしてマーク)
この場合、次のコードを使用しているテーマの関数ファイルに追加すると、公開する名前が「honggild***@***er.com」のような形式で表示されます。
// Sets the user's display name (always) to email address with some characters are hidden with asterisks, when it's available: add_action ('admin_head','make_display_name_email_address'); function make_display_name_email_address(){ $users = get_users(array('fields'=>'all')); foreach($users as $user){ $user = get_userdata($user->ID); $em = $user->user_email; $mail_segments = explode("@", $em); $mail_segments[0] = substr($mail_segments[0], 0, -3) 。 "***"; $mail_segments[1] = "***" 。 substr($ mail_segments [1]、3); $new_email = implode("@", $mail_segments); $display_name = $new_email; if($display_name!=' ') wp_update_user( array ('ID' => $user->ID, 'display_name' => $display_name) ); else wp_update_user( array ('ID' => $user->ID, 'display_name' => $user->display_login) ); if($user->display_name == '') wp_update_user( array ('ID' => $user->ID, 'display_name' => $user->display_login) ); }}
メールアドレスは必須であるため、上記のコードでは、以下の条件文は不要なようです。
上記のコードを追加して、テストしてみると WordPress 伝言板>ユーザー>私のプロフィールで、「公開して表示する名前」が「honggild***@***er.com」のように、一部の文字がアスタリスクで処理されたメールアドレスに変わって表示されます。
そして文作成者の名前も、下図のように電子メールアドレスとして表示されます。
メモ:
- 管理者のユーザー名(ID)を変更して、セキュリティを強化する
- WordPressで会員登録時にユーザー名/メール制限する
- get_user_meta() doesn't include user email? (get_user_meta()にはユーザーのメールが含まれていませんか?)
- Replace username part in email addresses into asterisks(正規表現を使用して電子メールの一部の文字をアスタリスクに置き換える方法)
- Replacing characters in email address with *(メールアドレスの一部の文字をアスタリスクに変更する方法)
- Hide email address in PHP with asterisk (*) - PHPでアスタリスクで電子メールの一部を隠す方法
コメントを残す