現在、WordPressの会員登録用のフォームを作っております。
その中に下記のフィールドがあります。
・ニックネーム (nickname)
・姓 (last_name) 必須
・名 (first_name) 必須
フォーム自体は問題なく機能しているのですが、登録を行うとDisplay Name(表示名)が、
first_name + last_nameとなってしまい、「名 姓」となってしまいます。
田中 太郎の場合、「太郎 田中」としてDisplay Nameが設定されます。
PHP
1add_action ('admin_head','make_display_name_f_name_last_name'); 2function make_display_name_f_name_last_name(){ 3 $users = get_users(array('fields'=>'all')); 4 foreach($users as $user){ 5 $user = get_userdata($user->ID); 6 $display_name = $user->nickname; 7 if($display_name!=' ') wp_update_user( array ('ID' => $user->ID, 'display_name' => $display_name) ); 8 else wp_update_user( array ('ID' => $user->ID, 'display_name' => $user->display_login) ); 9 if($user->display_name == '') 10 wp_update_user( array ('ID' => $user->ID, 'display_name' => $user->display_login) ); 11 } 12}
上記を使うとデフォルトでニックネームがDisplay Nameとして登録されます。
こちらを下記のようにしたいと考えております。
- ニックネームが入力された場合、ニックネームの値をDisplay Nameに設定。
- ニックネームが入力されなかった場合、last_name + first_name(姓 名)に順番を変更してDisplay Nameに設定。
可能であれば、こちらの制御をテーマのfunctions.phpで行いたいと考えております。
どなたかご教授頂ければ幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/15 15:46