ACF(Advanced Custom Fields) は、WordPressにカスタムフィールドを追加して柔軟にデータを管理できる非常に人気のあるプラグインです。特に「ACF: Table Field」プラグインを使用すると、簡単にテーブル形式のカスタムフィールドを追加できますが、テーブルフィールドに初期値を設定したい場合には少し工夫が必要です。
この記事では、「ACF: Table Field」プラグインを使用してテーブルフィールドに初期値を設定する方法について、具体的な手順をご紹介します。
1. ACF: Table Fieldプラグインとは
「ACF: Table Field」プラグインは、ACF Proと連携し、ユーザーが管理画面から簡単にテーブル形式のデータを入力できるようにする拡張機能です。このプラグインを使用すれば、商品リストやスタッフ情報など、様々な情報を表形式で入力・管理できます。
2. テーブルフィールドに初期値を設定する方法
通常、ACFプラグインのフィールドに初期値を設定するためには、acf/load_value
フィルターを使用します。これにより、まだデータが入力されていないフィールドに対して初期値を動的に適用することができます。
ただし、ACF: Table Field プラグインでは、テーブルフィールドの構造に応じて初期値の設定が必要です。
3. テーブルフィールドでの初期値設定のコード例
以下は、functions.php
ファイルに追加するコードの例です。この例では、テーブルフィールドに「住所」「電話番号」「営業時間」「定休日」を設定し、右側のカラムは空欄にしておきます。
function my_acf_load_shop_table_default_value( $value, $post_id, $field ) {
// フィールドがまだ設定されていない(空)場合に初期値を設定
if( empty($value) ) {
$value = array(
array( '住所', '' ), // 1行目: 住所
array( '電話番号', '' ), // 2行目: 電話番号
array( '営業時間', '' ), // 3行目: 営業時間
array( '定休日', '' ) // 4行目: 定休日
);
}
return $value;
}
add_filter('acf/load_value/name=shop_table', 'my_acf_load_shop_table_default_value', 10, 3);
このコードのポイント:
acf/load_value
フィルターを使って、テーブルフィールドに初期値を設定します。- テーブルの行ごとに「住所」「電話番号」「営業時間」「定休日」を設定し、右側のカラムは空欄にしています。
- このフィルターは、まだデータが入力されていないフィールドにのみ適用されます。
4. 初期値が反映されない場合の対処法
もし、このコードを追加しても初期値が表示されない場合、以下の点を確認してください。
- フィールド名が正しいか確認: フィルターで使用している
shop_table
が、実際に作成したフィールド名と一致しているか確認しましょう。フィールド名が異なると初期値が設定されません。 - キャッシュをクリア: サイトにキャッシュプラグインがインストールされている場合、キャッシュが影響して初期値が反映されないことがあります。キャッシュをクリアして再度確認してください。
- 他のフィルターやプラグインとの競合: 他のプラグインやフィルターが影響を与えている可能性があります。特に、他の
acf/load_value
フィルターが同じフィールドに適用されていると競合することがあります。
まとめ
「ACF: Table Field」プラグインでテーブルフィールドに初期値を設定するためには、acf/load_value
フィルターを使って初期値を定義する必要があります。今回紹介したコードを参考に、自分のプロジェクトに合わせた初期値を設定してみてください。
テーブルフィールドは、リスト形式でデータを入力する際に非常に便利な機能です。初期値を設定しておくことで、管理画面での入力作業も効率化されるでしょう。