WordPressのユーザープロフィールに独自の項目を追加する方法

WordPressのユーザープロフィールに独自の項目を追加する方法

WordPressのユーザープロフィールに独自の項目を追加する方法
  • シェアしてね♪
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

  • 広告主様募集中
    ワンコインで広告掲載してみませんか?
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

WordPressのプロフィール画面で、独自の項目を追加する方法をご紹介いたします。

スポンサードリンク

WordPressのユーザープロフィールに独自の項目を追加する方法

独自の項目をプロフィールに追加するには、適用しているテーマのfunctions.phpに以下のような記述を追加します。

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だけでなく色んな項目を追加することが可能です。

テキストエリアやセレクトボックス等を追加する方法

上述した方法ではテキストボックスを追加できますが、テキストエリアやセレクトボックス等を追加したい場合は、下記のように記述します。

functions.php
//「あなたについて」に独自項目を追加
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で入力された内容を更新しています。

上記コードを追加すると、以下のようにテキストエリアとセレクトボックスが追加されます。

ユーザープロフィールへのセレクトボックス・テキストエリアの追加

あとがき

会員制のサイトを作るときなんかは使えるテクニックですね。参考になれば幸いです。

この記事が気に入ったら
いいね!してね♪

Twitter で
スポンサードリンク

関連記事

コメントを残す

メールアドレスが公開されることはありません。