WordPressのユーザープロフィール編集画面に、独自の入力項目を追加したいという場面は多くあります。たとえば「会社名」や「趣味」「部署名」など、ユーザー情報をより詳細に管理するために役立ちます。この記事では、「勤務先(会社名)」という項目をプロフィール画面に追加し、保存・取得できるようにする方法を紹介します。
ユーザープロフィール画面に入力フィールドを追加する
まずは、ユーザープロフィール画面に独自の入力欄を表示させます。以下のコードをfunctions.php
に追加してください。
add_action('show_user_profile', 'add_custom_user_profile_fields');
add_action('edit_user_profile', 'add_custom_user_profile_fields');
function add_custom_user_profile_fields($user) {
echo '<h3>追加情報</h3>';
echo '<table class="form-table">';
echo '<tr>';
echo '<th><label for="company">勤務先</label></th>';
echo '<td>';
echo '<input type="text" name="company" id="company" value="' . esc_attr(get_the_author_meta('company', $user->ID)) . '" class="regular-text" />';
echo '<br><span class="description">勤務先(会社名)を入力してください。</span>';
echo '</td>';
echo '</tr>';
echo '</table>';
}
入力された値を保存する
次に、編集画面で入力した勤務先の値を保存できるようにします。保存には personal_options_update
と edit_user_profile_update
の2つのアクションフックを使います。
add_action('personal_options_update', 'save_custom_user_profile_fields');
add_action('edit_user_profile_update', 'save_custom_user_profile_fields');
function save_custom_user_profile_fields($user_id) {
if (!current_user_can('edit_user', $user_id)) {
return false;
}
update_user_meta($user_id, 'company', sanitize_text_field($_POST['company']));
}
ユーザー情報としてフロントで表示する
追加した「勤務先」の情報は、フロントエンドでも取得・表示できます。たとえば、投稿者情報の下に表示したい場合、以下のようにテンプレートファイル内で記述します。
<?php
$company = get_the_author_meta('company');
if ($company) {
echo '<p>勤務先:' . esc_html($company) . '</p>';
}
?>
まとめ
ユーザープロフィール画面に独自の項目を追加することで、WordPressサイトの拡張性が高まり、管理者としても便利なカスタマイズが可能になります。今回は「勤務先(会社名)」というシンプルな項目で紹介しましたが、複数の入力フィールドやセレクトボックス、チェックボックスなども同様の方法で追加できます。会員サイトや多人数での投稿管理において、ユーザー情報を豊かに保つ工夫として取り入れてみてください。