ユーザープロフィールの「あなたについて」に自由な項目を追加したい
>> ユーザーのプロフィールを入力し、表示する方法
こちらの記事で、プロフィールの入力方法、表示方法を紹介しましたが
デフォルトのままでは項目が少し寂しいです。
今回はプロフィールの「あなたについて」に新しく項目を追加する方法を紹介します。
テーマファイル内の functions.php を用意する
今使用しているテーマファイル内の functions.php を用意します。
無い場合は、新しく同名のファイルを作成します。
プロフィール「あなたについて」に項目を追加する
<?php function add_user_data_form($bool) { global $profileuser; if ( preg_match('/^(profile\.php|user-edit\.php)/', basename($_SERVER['REQUEST_URI'])) ) { ?> <tr> <th scope="row">項目1</th> <td> <input type="text" name="user_data1" id="user_data1" value="<?php echo esc_html($profileuser->user_data1); ?>" /> </td> </tr> <?php } return $bool; } add_action('show_password_fields', 'add_user_data_form'); function update_user_data($user_id, $old_user_data) { if ( isset($_POST['user_data1']) && $old_user_data->user_data1 != $_POST['user_data1'] ) { $user_data1 = sanitize_text_field($_POST['user_data1']); $user_data1 = wp_filter_kses($user_data1); $user_data1 = _wp_specialchars($user_data1); update_user_meta($user_id, 'user_data1', $user_data1); } } add_action('profile_update', 'update_user_data', 10, 2); ?>
「項目1」というタイトルの項目を「user_data1」として登録しました。
増えました!
追加したプロフィールを表示する
この項目を表示するには、通常のプロフィール項目同様
<?php $userdata = get_userdata('ユーザーID'); ?> <?php echo esc_html($userdata->user_data1); ?>
このようなソースで表示できます。
(・ω・テスト)
プロフィール「あなたについて」の項目追加は、
- 項目のフォームを出力するメソッド
- 追加した項目の更新処理をするメソッド
この2つをそれぞれ項目ごとに指定する必要があるので、
ソースコードが少し長くなってしまいます。
簡単にカスタマイズしたい方には「連絡先情報」に項目を追加する方法をおすすめします。
>> ユーザープロフィールの「連絡先情報」に自由な項目を追加したい
関連記事