ACFでWordPressのユーザープロフィールに項目追加して取得・表示

WordPressのユーザープロフィールに、ACF(Advabced Custom Fields)を利用して好きな項目を追加し、表示させる方法です。

管理者アカウントのプロフィールに、受付時間の入力欄を追加する、というような場合に使えます。


まずはACFでフィールドグループを作成

ACFからフィールドグループ>新規追加して、フィールドグループを作成します。

次にフィールドを以下のように追加します。

ACFフィールドグループの設定01

  1. フィールドラベルを入力:ここがユーザープロフィール編集画面に項目見出しとして表示されます
  2. フィールド名:日本語そのままでも使えますが、半角英数にしておいたほうが安全
  3. フィールドタイプ:どんな項目にするかで変わりますが、ここでは3行程度のテキスト情報を想定してテキストエリアにしています

ACFフィールドグループの設定02

  1. 行数:テキストエリアにした場合、デフォルトが8でかなり大きいので、少なくしています
  2. 改行:テキストエリア内での改行を有効にしたいので、「自動的に<br>に変換」にしています

これでフィールドの設定は最低限OKです。


ルールを設定

何故かACFの項目が「位置」なんですけど(翻訳間違いかな?)、この中の「ルール」を以下のようにします。

ACFフィールドグループの設定03

管理者のアカウントに項目を追加したいので、上記のようにしています。

後は「設定」項目の設定になりますが、ここは管理側の見た目の設定なので、お好みでどうぞ。

ACFフィールドグループの設定04

これでACF側の設定は終わりです。


ユーザープロフィールに項目が追加

ここまでできたらユーザー>プロフィールと開いてみます。以下のように、ACFで設定した項目が追加されています。

ACFフィールドグループの設定05

確認出来たら早速、中身を記入しておきます。


テーマに表示用のコードを追加

ユーザープロフィールはループ外だとユーザーIDも必要ですが、ACFを使っている場合も同様にユーザーIDが必要になります。例えばユーザーIDが “ 1 ” で、フィールド名が「open_hours」の場合は以下のようになります。

<?php the_field('open_hours', 'user_1'); ?>

user_1 の数字が、表示させたいユーザーのIDになります。
もしIDが5だったら user_5 となります。

グループフィールドにした場合

複数のフィールドを一つのgroupフィールドにした場合は、以下のようになります。

<?php
$group = get_field( 'openhours', 'user_1' );
echo $group[ 'サブフィールド名' ];
?>

その他の使い方は、公式サイトのガイドを見てみてください。

Get Values From a User

制作者近影

制作者 : 樋口 美徳(ひぐち みのり)
Webデザイナー・グラフィックデザイナー・イラストレーター
美大卒業後インターネット黎明期に独学でWebサイト制作を学び、1999年より日本の会社でデザイナーとして2008年まで勤務。勤務中2007年にドイツ・ベルリンへ移住し、以後フリーランスとして働いています。
夫と長女(大学生)、長男(高専生)の日本人4人家族でドイツ生活絶賛サバイバル中です。

制作者の紹介へ制作実績へお問い合わせ