ユーザープロフィールの「あなたについて」に自由な項目を追加したい

カスタム

wpphp_user_profile_new_add

>> ユーザーのプロフィールを入力し、表示する方法
こちらの記事で、プロフィールの入力方法、表示方法を紹介しましたが
デフォルトのままでは項目が少し寂しいです。

今回はプロフィールの「あなたについて」に新しく項目を追加する方法を紹介します。

テーマファイル内の 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」として登録しました。

wpphp_profile_add_sample01

増えました!

追加したプロフィールを表示する

この項目を表示するには、通常のプロフィール項目同様

<?php $userdata = get_userdata('ユーザーID'); ?>
<?php echo esc_html($userdata->user_data1); ?>

このようなソースで表示できます。

(・ω・テスト)

プロフィール「あなたについて」の項目追加は、

  • 項目のフォームを出力するメソッド
  • 追加した項目の更新処理をするメソッド

この2つをそれぞれ項目ごとに指定する必要があるので、
ソースコードが少し長くなってしまいます。
簡単にカスタマイズしたい方には「連絡先情報」に項目を追加する方法をおすすめします。

>> ユーザープロフィールの「連絡先情報」に自由な項目を追加したい

カスタム

関連記事