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) ); }}
上記のコードを適用すると、ユーザーの表示名が「ホン・ギルドン」のように「姓+名」が表示されます。
必要に応じて、表示名を電子メールアドレスに変更することも可能です。 しかし、電子メールアドレスをそのまま公開する場合、個人のプライバシーの問題が発生することができ、スパマーの標的になる可能性があるため、電子メールのいくつかのフィールドをアスタリスクでブラインド処理して表示することができます。 (例えば、honggildong@naver.com代わり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()does not 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でアスタリスクでメールの一部を非表示にする方法
コメントを残す