Advanced Custom Fieldsのよくあるトラブルまとめと解決方法
今回は、WordPress(ワードプレス)の投稿や固定ページにカスタムフィールドを追加するプラグインのAdvanced Custom Fields(ACF)に関するよくあるトラブルと解決方法を紹介します。
内容については、随時更新や追加をしていきます。
Advanced Custom Fieldsについて
Advanced Custom Fields(ACF)とは、WordPress(ワードプレス)の固定ページや投稿、カスタム投稿などにカスタムフィールドとして入力項目を新たに追加したりカスタマイズすることができるプラグインです。
Advanced Custom Fieldsのよくあるトラブル
Advanced Custom Fieldsを利用する際によくあるトラブルや落とし穴について、実際に紹介していきます。
カスタムフィールドが出力されない、表示されない
カスタムフィールドが出力されない、入力したテキストがサイトに表示されないというトラブルがよくあります。
the_fieldではなく、get_fieldで出力してしまっている
例えば、管理画面で入力したテキストフィールドを表示させたい場合、基本的には下記のように記述します。
// プロフィールページの名前を表示させる例
<h3><?php the_field('profile_name'); ?></h3>
しかし、上記のような記述方法ではなく、フィールドの値を取得する記述方法にしてしまい、入力した内容が出力されなくなってしまっていたということがあります。
// カスタムフィールド出力失敗例
<h3><?php get_field('profile_name'); ?></h3>
上記のように、本来は出力させる場面で「get_field」と記述してしまうと、カスタムフィールドの値は表示されません。
ただ、「get_field」を使って表示させることも可能です。
// get_fieldを使ってカスタムフィールドの値を表示させる例
<?php
// カスタムフィールドの値を$profileNameに代入
$profileName = get_field('profile_name');
?>
<h3><?php echo $profileName; ?></h3>
「get_field」を使ってカスタムフィールドを表示させたい場合は、任意の変数(上記では$profileName)を用意して値を代入することで、表示させることができます。
違うページのテンプレートファイルに記述してしまっている
記述方法が正しくても、記述場所を間違えてしまうと正確に表示されません。
例えば、会社概要ページという固定ページで登録したカスタムフィールドをpage-company.phpに記述したつもりが、実際はpage-about.phpに記述していたといったケースです。※カスタム投稿も同様です。
登録したカスタムフィールドの位置(ルール)とページテンプレートが一致しているか確認しましょう。
繰り返しフィールドが出力されない
Advanced Custom Fieldsの有料版であるACF PROで提供されている繰り返しフィールドを使用する際、繰り返す中身のサブフィールドが出力されないといった問題がよく挙げられます。
<?php if( have_rows('faq') ): ?>
<?php while ( have_rows('faq') ) : the_row(); ?>
<dl>
<dt><?php the_sub_field('question'); ?></dt>
<dd><?php the_sub_field('answer'); ?></dd>
</dl>
<?php endwhile; ?>
<?php endif; ?>
本来は上記のように記述することで、繰り返しフィールドが出力されます。
ただ、「the_sub_field」と記載すべきところを「the_field」と記述してしまったり、「get_sub_field」と記述してしまうと、サブフィールドが表示されなくなってしまいます。
テキストや数値などの通常のフィールドグループと、繰り返しフィールドやグループフィールドといったサブフィールドを持つフィールドグループでは、記述方法が異なることを確認しましょう。
ACF PROの繰り返しフィールドの基本的な使い方と応用方法を紹介します
ACFで設定したカスタムフィールドが管理画面に表示されない
設定したカスタムフィールドが固定ページやカスタム投稿の管理画面で表示されないといったトラブルがあります。
考えられる原因をいくつか挙げていきます。
位置(ルール)を間違えている
カスタムフィールドを登録する際、固定ページに表示させる場合は「ページテンプレート」や「ページ」を選ぶ必要があります。
また、投稿やカスタム投稿では、「投稿」や「投稿タイプ」を選ぶ必要があります。
位置の設定に間違いがないか確認しましょう。
設定のアクティブで「いいえ」を選択してしまっている
フィールドグループ編集画面の設定項目に「アクティブ」があります。デフォルトでは「はい」になっているのですが、「いいえ」を選択してしまうと管理画面上で表示されなくなってしまいます。
カスタムフィールドのタブを閉じてしまっている
固定ページやカスタム投稿の管理画面にて、カスタムフィールドのタブが閉じてしまっている場合があります。
フィールドグループ編集画面の設定項目の「スタイル」でデフォルトで選択されている「標準(WPメタボックス)」を使用している場合、カスタムフィールドを開いたり閉じたりすることができます。
カスタムフィールドが開いている状態
カスタムフィールドが閉じている状態
カスタムフィールドのメタボックスのタブが開いている状態では、ラジオボタンの選択肢が見えているのですが、タブが閉じている状態では、別のプラグインの設定項目が表示されていることもあり認識しにくくなっています。
WordPressに慣れている人でも、カスタムフィールドの項目が多くなっていたりすると見失ってしまうことがあります。
カスタムフィールドの値が消える
管理画面で入力したカスタムフィールドの値が消えてしまうというトラブルです。
フィールド名が同じになっている
フィールドグループ編集画面で既存のフィールドグループを複製する場合、フィールドラベルだけを変更してフィールド名を変更し忘れてしまうと、固定ページなどの管理画面上ではカスタムフィールドが表示されるのですが、更新をして再読み込みをすると入力した内容が消えてしまいます。
更新をしただけでは、入力した内容は消えないのですが、管理画面を再読み込みした場合や改めて管理画面に訪れた際に入力内容が消えてしまっているのです。
上記のようにフィールド名が同じになってしまっていると、カスタムフィールドを正しく入力することができなくなってしまいます。
フィールドグループを複製して新規のフィールドグループを追加する場合は、フィールドラベルだけではなくフィールド名も確認しましょう。
有料版のAdvanced Custom Fields PROが更新できない
通常、プラグインの更新を行う場合は、インストール済みプラグイン一覧画面で更新の案内が表示されているプラグインの「更新ボタン」をクリックするだけで更新が始まります。
ただ、有料版ACF PROの更新については、更新ボタンをクリックするだけではなく、ライセンスキーの再入力を求められる場合があります。※クリックだけで更新できる場合もあります。
ライセンスキーについては、ACF PROのアカウントページにログインし、ライセンスページにてライセンスキーを確認することができます。
ライセンスキーをコピーし、WordPressのACF PROの設定画面にてライセンスキーの認証を行うと、プラグインの更新をすることができます。