最新記事をご参照ください。
Theme My Login 登録フォーム(準備編)
Theme My Login 登録フォーム(実装編)
Theme My Login 登録フォーム(おまけ)
メンバーサイトを構築する際に、ユーザープロフィールの編集画面はほとんど場合必須。そこで実現したいのは:
- プロフィールの表示項目の削除と追加(functions.php)
- プロフィールの編集は管理画面ではなくサイト内で(Theme My Login)
- プロフィールの編集でラジオボタンやチェックボックスなどを自由に使いたい(Theme My Loginとphp)
実現するプラグインはTheme My Login
プラグインの設定画面で “Themed Profiles を有効にする” をチェックすれば、プロフィールページをサイト内に表示できる。
でも不要な項目があったり、項目を追加したい場合は、そのためのプラグインもあるが、functions.phpへの記述と、Theme My Loginのプロフィールページのテンプレートを使って結構自由にカスタマイズできる。
プロフィールページの上部にある「ビジュアルエディター」「管理画面の色」「キーボードショートカット」「ツールバー」を削除するにはTheme My Loginの設定で可能。
プラグイン設定画面にて:
“Themed Profiles を有効にする” をチェックして更新すると
“をテーマにしたプロファイル”(ちょっと訳語が変ですが) のタブが表示されるので、”管理者のアクセスを制限する”の該当する権限ユーザーをチェックするとOK。
これで、管理画面(ダッシュボード)へのアクセスが制限され、当然ツールバーも表示されなくなる。
ユーザープロフィール(user_meta)の追加と削除は、functions.phpで:
/*********************************************** * ユーザープロフィールの項目のカスタマイズ ***********************************************/ function my_user_meta($x) { //不要な項目の削除 unset($x['aim']); unset($x['jabber']); unset($x['yim']); unset($x['first_name']); unset($x['last_name']); unset($x['display_name']); //項目の追加 $x['company_name'] = '会社名'; $x['company_name_kana'] = '会社名フリガナ'; $x['user_sex'] = '性別'; return $x; } add_filter('user_contactmethods', 'my_user_meta', 10, 1);
これで、ユーザーに編集してほしい項目だけがプロフィールページに表示されるようにできます。
Theme My Loginのtemplatesフォルダにあるprofile-form.phpをテーマフォルダにコピーして、このファイルをカスタマイズすれば、プロフィールページをかなりの程度望むとおりにできる。
デフォルトではテキストフィールドばかりだが、プルダウンやラジオボタン、チェックボックスの配置、Jqueryで特定の項目がチェックに応じて、表示/非表示を切り替え、なんてこともできる。
ちなみにラジオボタンの例は:
<label><input type="radio" name="user_sex" value="男性"<?php if (esc_attr( $profileuser->user_sex ) == '男性') echo ' checked'; ?> /> 男性</label> <label><input type="radio" name="user_sex" value="女性"<?php if (esc_attr( $profileuser->user_sex ) == '女性') echo ' checked'; ?> /> 女性</label>