ワードプレスのユーザーのプロフィールページに任意のフォームを表示して記録する方法をご紹介いたします。

ワードプレスのユーザープロフィールページに入力フォームを追加する

お使いのテーマのFunctions.phpもしくは制作中のプラグインなどに下記のコードを追加されてみてください。

add_action( 'show_user_profile', 'extra_user_profile_fields' );
add_action( 'edit_user_profile', 'extra_user_profile_fields' );

function extra_user_profile_fields( $user ) { ?>
   <h3>任意の項目</h3>

    <table class="form-table">
        <tr>
        <th><label for="extrafield">入力</label></th>
        <td>
        <input type="text" name="extrafield" id="extrafield" value="<?php echo esc_attr( get_the_author_meta( 'extrafield', $user->ID ) ); ?>" class="regular-text" /><br />
        </td>
        </tr>
    </table>
<?php } ?>

このコードでは、プロフィールの修正・表示画面にシンプルなフォーム入力項目を挿入表示いたします。

ワードプレスのユーザープロフィールページのカスタム入力項目の内容を保存する

次の上記項目に入力された値を保存するコードをご紹介します。上記コードの下に下記のコードを追記されてください。

add_action( 'personal_options_update', 'save_extra_user_profile_fields' );
add_action( 'edit_user_profile_update', 'save_extra_user_profile_fields' );

function save_extra_user_profile_fields( $user_id ) {
   if ( !current_user_can( 'edit_user', $user_id ) ) {
        return false;
    }
    update_user_meta( $user_id, 'extrafield', $_POST['extrafield'] );
}

このコードはユーザー本人もしくは、管理者がユーザー情報の更新時にextrafieldのPOST値を受け取り、ユーザーメタ(ワードプレスのユーザー用のカスタムな値の保存の仕組み)にその値を書き込んで保存するコードです。
保存時にバリデーションを追加されることも可能です。
よろしくお試しくださいませ。

WordPress ワードプレスの開発・カスタマイズ、エラーからの復旧、更新・移行等のご相談ご依頼はWPドクターまでお気軽にお送りください