【WordPress】ユーザープロフィール画面に独自の入力項目を追加する方法

【WordPress】ユーザープロフィール画面に独自の入力項目を追加する方法 WordPress

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_updateedit_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サイトの拡張性が高まり、管理者としても便利なカスタマイズが可能になります。今回は「勤務先(会社名)」というシンプルな項目で紹介しましたが、複数の入力フィールドやセレクトボックス、チェックボックスなども同様の方法で追加できます。会員サイトや多人数での投稿管理において、ユーザー情報を豊かに保つ工夫として取り入れてみてください。