register3

ユーザー管理に関するあれやこれや(Cimy User Extra Fields編)

2011.11.06(日) WordPress, プラグイン, 関数
このエントリーをはてなブックマークに追加

さて、今回もまたユーザー登録関連についてです。こんなに長くなるとは思ってませんでしたが、それだけ重要なのかな?と思います。なにはともあれ、使ってくれる人あってのホームページやサービスですから。ということで、もうしばらくお付き合いください。今回は、Cimy User Extra Fieldsというプラグインについてですが、このプラグインが出来ることは、ユーザー情報のカスタマイズにつきます。


ユーザー登録画面に、登録情報を追加する

例えば、ThemeMyLoginプラグインで作成された、ユーザー登録画面にて、性別や年齢などを入力してもらう場合は、以下のような画面が作る必要があるのですが、これをプラグイン設定のみで実現します。


登録画面[divider_flat]

コントロールを設定する

性別については、ラジオボタンを使用します。定義としては、以下のようになります。



注意としては、名前を必ず一緒にすること。そうするとこで、その中のどれか一つのみ選択できるようになります。
次に年齢用コンボボックスですが、以下のようになります。



これで、ユーザー登録時に、性別や年齢を登録してもうらうことが可能となります。また、これらの情報はプロフィール画面で後で設定変更することも可能になります。ThemeMyLoginで自動作成されたプロフィールにもちゃんと出るのが秀逸ですね。
プロフィール画面

ついでに、項目を整理する

プロフィール画面も連絡先情報ですが、デフォルトだとあまり使わないような項目もあります。AIM、Jabber / Google Talkなどは、あまり必要ではないかなと思いますので、消してしまいましょう。逆に、TwitterやFacebookなど、いまどきのものがなかったりするので、追加しましょう。これは、プラグインではなく、以下のコードをfunchion.phpに追加することで、実現できます。

<php
 	 function update_profile_fields( $contactmethods ) {
  		//項目の削除
  		unset($contactmethods['aim']);
  		unset($contactmethods['jabber']);
  		//項目の追加
  		$contactmethods['twitter'] = 'Twitter';
  		$contactmethods['facebook'] = 'Facebook';
  		return $contactmethods;
}
//この関数を、user_contactmethodsという名称にフックする
//第3引数は、同一名称にフックした関数を呼び出す順番で10はデフォルト
//その場合は、関数を登録した順
//第4引数は、update_profile_fieldsに渡す引数の数
add_filter('user_contactmethods','update_profile_fields',10,1);
?>

$contactmethodsには、プロフィール欄の連絡先情報に表示するための名称が配列で入っており、それをunset関数で消していると思われます。aimや、jabberは、配列のキーになっているようで、どうやらuser.phpのなかで、登録されているみたいですね。逆に、追加はキーと名称を渡しているだけなので、構造としては非常にシンプルです。

/**
* Set up the default contact methods
*
* @access private
* @since
*
* @param object $user User data object (optional)
* @return array $user_contactmethods Array of contact methods and their labels.
*/
function _wp_get_user_contactmethods( $user = null ) {
$user_contactmethods = array(
'aim' => __('AIM'),
'yim' => __('Yahoo IM'),
'jabber' => __('Jabber / Google Talk')
);
return apply_filters( 'user_contactmethods', $user_contactmethods, $user );
}

 



ということで、これでユーザーに登録してほしい情報を自由に登録でき、しかもThemeMyLoginとの相性も非常によく、プロフィール画面にも自動的に出てくれるので、ユーザーもあまり迷わず登録してくれるのではないでしょうか?
ということで、ボクのホームページも、無事、団員のみなさんのユーザー登録が進んで行ったわけですが、ある時からパタっと登録がやみました。まだ、1/3くらいの人しか登録してないのに、、、嫌な予感しかしない。

その原因となったのは、実はマルチサイト化でした。マルチサイト化した直後から、ユーザー登録がどうもうまくいってないようで、その原因は、、、、長くなったので、次回へつづく。今度こそ最後になるはずですので・・・

“ユーザー管理に関するあれやこれや(Cimy User Extra Fields編)” への1件のコメント

コメントをどうぞ