【wordpress ユーザープロフィール】ユーザープロフィールページに項目を追加する

ユーザーのプロフィールページに項目を追加する方法を説明します。

プラグイン開発やwordpressカスタマイズをしていると、クライアントからよく注文される事の一つです。

このページではプロフィール項目に性別欄を入力させる方法を説明します。

まず一番簡単なプロフィール項目への項目追加方法は

function user_profile($profile)
{
    $profile[‘gender’] = ‘性別’;
return $profile;
}
add_filter(‘user_contactmethods’, ‘user_profile’, 10, 1);
この方法だと思います。
このソースをfunction.phpに貼付ければ
このように簡単に項目を追加出来ます。
ただ、この方法の欠点はtextフィールドになってしまう事。
出来たらradioボックスにしないのでこの方法は使いたくないです。

・性別欄のradioボックスのソース

プロフィール項目に性別欄の項目を入れるソースは以下になります。

function set_user_profile()
{
global $profileuser;

//性別
echo ‘<tr><th><label>性別</label></th>
<td>
<input type=”radio” name=”gender” value=”1″‘.(($profileuser->gender == ‘1’) ? ‘checked’ : ”).’>男<br>
<input type=”radio” name=”gender” value=”2″‘.(($profileuser->gender == ‘2’) ? ‘checked’ : ”).’>女<br>
<td></tr>’;
}
add_action(‘show_password_fields’, ‘set_user_profile’);

function update_user_profile($user_id)
{
update_user_meta($user_id, ‘gender’, $_POST[‘gender’]);
}
add_action(‘profile_update’, ‘update_user_profile’, 10, 2);

一つづつ説明します。

まず

add_action(‘show_password_fields’, ‘set_user_profile’);

でプロフィールページに項目を追加しています。

echoで表示した方が色々とカスタマイズ可能で使いやすい。

ただ表示するだけだと保存出来ないので保存用に

add_action(‘profile_update’, ‘update_user_profile’, 10, 2);

で更新作業をしています。

この方法の方が色々どうにでもカスタマイズ出来るので、実際のプラグイン開発の現場ではこっちのやり方をオススメします。

以上です!