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で入力された内容を更新しています。
上記コードを追加すると、以下のようにテキストエリアとセレクトボックスが追加されます。
あとがき
会員制のサイトを作るときなんかは使えるテクニックですね。参考になれば幸いです。




この記事がとても役立ちました。
ぜひ、続きを書いてほしい!