【書くコードも少なく済んで、扱いやすかったです】WordPressのプロフィールページ内の「連絡先情報」の項目に、独自の入力欄を追加する方法

WordPressでユーザーアカウントごとに設けられている「プロフィールページに独自の入力欄を追加しよう」という作業が必要で、先日やり方を覚えました。

こんな感じで入力欄を追加できる

wordpressprofileadd00

手順を記事にしましたので、興味がありましたらご参考ください。

便利なのでおすすめです。

入力欄の追加する方法は他にもあるんで、ついでに覚えよう

それで、以下のようにFacebookページに投稿したんですが、いつもお世話になっている黄色神様でおなじみのあの方から情報をご提供いただきました。

ほんと、いつもありがとうございます。

どうやら「user_contactmethods」を使うと似たようなことができるようです。このタイミングで一気に覚えておくのはとても効率的だと思ったので、早速やってみました。

プロフィールページの「連絡先情報」に入力欄を追加する

それではさっそく~。Codexに掲載されているコードを今回もありがたく参考にさせて頂きまして、「functions.php」の最後尾に以下のコードを追記しました。

//プロフィールページの「連絡先情報」の入力欄
add_filter( 'user_contactmethods', 'modify_user_contact_methods' );
function modify_user_contact_methods( $user_contact ) {
 //入力欄追加
 $user_contact['skype']   = __( 'Skype Username'   );
 $user_contact['twitter'] = __( 'Twitter Username' );

 //入力欄削除
 unset( $user_contact['aim']    );
 unset( $user_contact['jabber'] );

 return $user_contact;
}

うまくコードが動くと、下の画像のように「連絡先情報」の項目内に

  1. Skype Username
  2. Twitter Username

の2つの入力欄が追加されます。

入力欄が追加されました

wordpressprofileadd05

コードがやっていること

フィルターフック「user_contactmethods」で入力欄「skype」「twitter」を追加、「aim」「jabber」を削除しています。

コードと上の画像の結果を見ると、どのコードがどの部分に関係しているのか直感的にわかりやすいですね。

ところで「aim」とか「jabber」ってなんだろ?

  • aim → AOLインスタント・メッセンジャー
  • jabber → jabberインスタントメッセンジャー

のことらしいです。全く知らなかった!

この記事公開時のWordPressの最新バージョン(4.2.2)では、すでに2つの入力欄「aim」「jabber」はなかったので、あえて削除のコードを書かなくてもいいのかなと思ったんですが、どうなんだろう・・・

入力欄を削除できるのは3つだけみたい

また、関連する内容として以下のフォーラムの投稿を読んだのですが、入力欄の削除ができるのは、「aim」「jabber」「yim」だけのようです。

(少し前に掲載された情報なので、今現在はどうなっているのかまでは追いかけていません)

いろいろと書きましたが、コードがやっていることは「入力欄の追加、削除ができるよ」ってことですね。

表示もできる

プロフィールページで入力したデータは「get_the_author_meta」で表示することができます。今回追加した入力欄「skype」「twitter」についても同様です。

例えば「skype」のデータを表示したい場合は、

<?php echo get_the_author_meta( 'skype' ); ?>

または、

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

と書けば表示できます。これは便利だ・・・!

結局どっちを使えばいいの?

以下は僕の考え方なんですが、連絡先情報として同列に持たせたい情報の場合は、今回ご紹介したフィルターフック「user_contactmethods」を使えばいいと思います。

また、フィルターフック「user_contactmethods」を1つ使えば、入力欄の追加・保存機能が有効になる上、コードも短いのでわかりやすいし、記述ミスなどにも気づきやすいです。

「○○やすい」ってのは正義。

逆に「いや、連絡先情報ってわけでもないんだよね・・・別枠で設けたいんだよ」という場合は、先日書いた以下の記事の方法を使えばいいんじゃないかと思います。

やりたいことによって使い分ければOKですね。

というわけで、また1つやれることが増えたんでとても満足しています。もし似たようなことをされたい場合は、ご参考くださいますと嬉しいです。

著者:bouya Imamura