WordPressのプロフィール画面で、独自の項目を追加する方法をご紹介いたします。
WordPressのユーザープロフィールに独自の項目を追加する方法
独自の項目をプロフィールに追加するには、適用しているテーマのfunctions.phpに以下のような記述を追加します。
//「連絡先情報」に独自項目を追加 function add_profile_fields( $contactmethods ) { $contactmethods['twitter'] = 'Twitter'; $contactmethods['facebook'] = 'Facebook'; return $contactmethods; } add_filter('user_contactmethods','add_profile_fields',10,1);
上記の例だと、TwitterとFacebookの項目が追加されます。
上記コードをfunctions.phpに記述して、プロフィール編集画面にアクセスすると、以下のように「Twitter」と「Facebook」の入力欄が追加されています。
「$contactmethods[‘twitter’] = ‘Twitter’;」や「$contactmethods[‘facebook’] = ‘Facebook’;」の部分を変更すれば、TwitterやFacebookだけでなく色んな項目を追加することが可能です。
テキストエリアやセレクトボックス等を追加する方法
上述した方法ではテキストボックスを追加できますが、テキストエリアやセレクトボックス等を追加したい場合は、下記のように記述します。
//「あなたについて」に独自項目を追加 function add_user_profile_fields($bool) { global $profileuser; //テキストエリア echo '<tr><th><label for="t_area">テキストエリア</label></th><td><textarea name="t_area" rows="3" cols="30">'.esc_html($profileuser->t_area).'</textarea></td></tr>'; //セレクトボックス echo '<tr><th><label for="s_box">セレクトボックス</label></th><td><select name="s_box"><option value="選択肢1"'.(($profileuser->s_box == '選択肢1') ? ' selected' : '').'>選択肢1</option><option value="選択肢2"'.(($profileuser->s_box == '選択肢2') ? ' selected' : '').'>選択肢2</option></select><td></tr>'; return $bool; } add_action('show_password_fields', 'add_user_profile_fields'); //追加した独自項目の更新 function update_user_profile_fields($user_id, $old_user_data) { //テキストエリアを更新 if(isset($_POST['t_area'])) { update_user_meta($user_id, 't_area', $_POST['t_area'], $old_user_data->t_area); } //セレクトボックスを更新 if(isset($_POST['s_box'])) { update_user_meta($user_id, 's_box', $_POST['s_box'], $old_user_data->s_box); } } add_action('profile_update', 'update_user_profile_fields', 10, 2);
add_user_profile_fieldsで入力欄を追加し、update_user_profile_fieldsで入力された内容を更新しています。
上記コードを追加すると、以下のようにテキストエリアとセレクトボックスが追加されます。
あとがき
会員制のサイトを作るときなんかは使えるテクニックですね。参考になれば幸いです。
この記事がとても役立ちました。
ぜひ、続きを書いてほしい!