WordPressユーザーのプロフィール画面にテキスト入力項目を追加するカスタマイズする方法

WordPress管理画面の「ユーザー」→「あなたのプロフィール」メニューを選択すると以下のような画面になります。

あなたのプロフィールデフォルト画面

この部分は、結構手軽に設定項目を追加したり削除したりすることが可能です(※テキスト入力項目ならば)。

例えば、ユーザーごとの「Twitter URL」入力項目を追加したり、逆に使っていない「Yahoo IM」は削除なんてことが可能です。

例えば、こんな風にカスタマイズできます。

プロフィール画面カスタマイズ例

以下では、上記のようなカスタマイズを行う方法について紹介したいと思います。

スポンサーリンク
レクタングル(大)広告

プロフィール項目の追加や削除の方法

プロフィール画面に対して、設定項目を追加したり、削除したりするには以下のようなコードをfunctions.phpに書きます。

// ユーザープロフィールの項目のカスタマイズ
function user_contactmethods_custom_ex($prof_items){
  //項目の追加
  $prof_items['twitter_url'] = 'Twitter URL';
  $prof_items['facebook_url'] = 'Facebook URL';

  //項目の削除
  unset($prof_items['aim']);
  unset($prof_items['yim']);
  unset($prof_items['jabber']);

  return $prof_items;
}
add_filter('user_contactmethods', 'user_contactmethods_custom_ex');

user_contactmethodsをフックして取得できる連想配列に対して、以下のように新たに配列と値を追加して、返り値として連想配列を戻すと設定項目が追加されます。

$prof_items['twitter_url'] = 'Twitter URL';

逆に、連想配列から特定の配列を取り除くと、設定項目が削除されます。

unset($prof_items['aim']);

最終的には、こんな感じでカスタマイズできました。

ユーザープロフィール画面のカスタマイズ後

現時点で項目を削除できるのは、「AIM(AOLインスタント・メッセンジャー)」、「Yahoo IM(Yahoo!インスタント・メッセンジャー)、「Jabber / Google Talk(Jabberインスタント・メッセンジャー/Googleトーク)」の3つのみとなっています。

追加した項目に入力された値の取得方法

追加した設定項目は、テーマ側から値を取得して利用することが可能です。

例えば、以下のように項目を追加した場合、

$prof_items['twitter_url'] = 'Twitter URL';

入力された値を取得し、出力するには以下のように記入します。

<?php the_author_meta('twitter_url'); ?>

僕の場合は、毎回引数を入力するのも面倒なので、以下のような関数を作って取得しています。

function get_the_author_twitter_url(){
  return get_the_author_meta('twitter_url');
}

上記の関数を利用して、値の取得&出力をする場合は以下のように書きます。

<?php echo get_the_author_twitter_url(); ?>

このようにすることで、多少値を取得する際の書く手間は軽減できるかなと。もちろん書き方の好みによるところもあるけど。

参考情報

今回のカスタマイズ方法書く際に、参考にさせていただいた情報はこちら。

まとめ

こんな感じで、「単なるテキスト入力項目」であれば、結構簡単に追加することが可能です。また、不要な物も削除することができます。

というか、あらかじめ手軽に追加/削除できる仕組みが用意されているんですね。

ただ、入力欄を追加すると言っても、「テキスト入力項目」以外のものを追加する際は、以下のページで説明されているような手順を行う必要があるようです。

1つのサイトに対して、ユーザーアカウントを複数作って運営することもあると思います。 例えばWordPressを使ってメディアサイトを運営している場合、記事を書いてくれるライターさんごとにユーザーアカウントを作るようなイメ...

例えば「入力欄の下に簡単な説明を追加したい」なんて場合も、上の記事の方法を行う必要があるでしょう。