質問: ### 前提・実現したいこと wordpressの表示名をユーザ名にしたいです。 というのも、 wordpressにて有料の会員サイトを運営しておりまして、 本人確認のため実名登録をしていただいております。 そのため、デフォルトの表示名では本名が表示される (コメント等で)ので嫌がる方もいらっしゃいます。 プロフィールページから変えてもらう事も考えましたが、 手間になってしまうのと、パソコン苦手で操作がよくわからないとの 問い合わせに対する返答が負担になるので、 全て強制的にユーザ名が表示されるようにしてしまいたいです。 (プラグインでも可) 特にユーザ名にこだわっている訳ではなく、 本名表示が嫌なので違う何かでも大丈夫です。 よろしくお願いいたします。
回答: ``` foreach(get_users() as $user){ wp_update_user([ 'ID'=>$user->ID, 'display_name'=>$user->user_login, 'user_nicename'=>$user->user_login ]); } ``` テーマのfunctions.phpに挿入して一回走らせれば 全ユーザーのdisplay_nameをuser_loginに変更、 用が済んだら削除 登録更新時もdisplay_nameをuser_loginに強制 ``` add_filter('wp_pre_insert_user_data',function($data,$is_update,$user_id){ if($is_update){$data['display_name']=$data['user_nicename']=get_user($user_id)->user_login;} else{$data['display_name']=$data['user_nicename']=$data['user_login'];} return $data; },100,3); add_filter('insert_user_meta',function($meta,$user,$is_update){ $meta['nickname']=$user->user_login; return $meta; },100,3); ```