【WordPress】ユーザーのプロフィールの項目をカスタマイズする
問題
例えば、会社のホームページの社員紹介ページのようなものを作る場合、
社員の情報をWordPressのユーザーとして管理しようとすると、どうしても項目が足りない。
社員番号や、性別や、twitterアカウント、facebookのURLなど、いろいろ入れたいんだけど、難しい?
答え
案外簡単。functions.php などに、以下のフックを追加する。
/** * ユーザープロフィールの項目のカスタマイズ */ function my_user_meta($x) { //項目の削除 unset($x['aim']); unset($x['jabber']); unset($x['yim']); //項目の追加 $x['twitter'] = 'twitter'; $x['facebook'] = 'facebook'; $x['phone'] = '電話'; $x['address'] = '住所'; return $x; } add_filter('user_contactmethods', 'my_user_meta', 10, 1);
JabberやらAIMなんて使わないという場合は、削除できるし、twitter、facebookのURLや住所、役職、電話番号、血液型などなど、何でも項目が追加できる。
ちなみに、どんな風にデータベースにユーザーのプロフィールが格納されるのかというと、wp_usermeta のテーブルに以下のように保存されている。項目はわりと気軽に追加、変更できそうな感じですね。
mysql> select * from wp_usermeta;
+----------+---------+---------------------------------------+---------------------------------------------------------+
| umeta_id | user_id | meta_key | meta_value |
+----------+---------+---------------------------------------+---------------------------------------------------------+
| 1 | 1 | first_name | |
| 2 | 1 | last_name | |
| 3 | 1 | nickname | admin |
| 4 | 1 | description | |
| 5 | 1 | rich_editing | true |
| 6 | 1 | comment_shortcuts | false |
| 7 | 1 | admin_color | fresh |
| 8 | 1 | use_ssl | 0 |
| 9 | 1 | show_admin_bar_front | true |
| 10 | 1 | wp_capabilities | a:1:{s:13:"administrator";s:1:"1";} |
| 11 | 1 | wp_user_level | 10 |
| 12 | 1 | dismissed_wp_pointers | wp330_toolbar,wp330_media_uploader,wp330_saving_widgets |
| 13 | 1 | show_welcome_panel | 0 |
| 14 | 1 | wp_dashboard_quick_press_last_post_id | 3 |
| 15 | 1 | wp_user-settings | editor=html&imgsize=full |
| 16 | 1 | wp_user-settings-time | 1327161604 |
| 17 | 1 | twitter | |
| 18 | 1 | facebook | |
| 19 | 1 | phone | 電話入力テスト |
| 20 | 1 | address | 住所入力テスト |
+----------+---------+---------------------------------------+---------------------------------------------------------+
20 rows in set (0.00 sec)
コメント