acf_register_location_type()


WordPressのacf_register_location_type()関数は、ACF(Advanced Custom Fields)プラグインでカスタムロケーションフィールドを登録するために使用されます。この関数を使用することで、新しいロケーションタイプを追加し、フィールドグループの表示条件を拡張できます。

構文

acf_register_location_type( array $location_type );

引数の説明:

  • $location_type(array) — ロケーションタイプの設定を含む配列。以下のキーを持つことができます:
    • name(string) — ロケーションタイプの名前。
    • label(string) — 管理画面に表示されるラベル。
    • category(string) — ロケーションのカテゴリ(例: ‘post’, ‘page’, ‘user’)。
    • public(bool) — ロケーションが公開されるかどうか。
    • operands(array) — ロケーションのオペランド(例: ‘==’, ‘!=’)。
    • values(array) — ロケーションの値(例: ‘post_type’, ‘page_template’)。

例 1: 基本的なロケーションタイプの登録

新しいロケーションタイプを登録する基本的な例です。

acf_register_location_type(array('name'=>'custom_location','label'=>'カスタムロケーション','category'=>'post','public'=>true,'operands'=>array('==','!='),'values'=>array('post_type','page_template')));

例 2: カスタムロケーションタイプを使用したフィールドグループの表示条件

カスタムロケーションタイプを使用して、特定の条件でフィールドグループを表示します。

if(function_exists('acf_add_local_field_group')){acf_add_local_field_group(array('key'=>'group_1','title'=>'カスタムフィールドグループ','location'=>array(array(array('param'=>'custom_location','operator'=>'==','value'=>'post_type'))),'fields'=>array(array('key'=>'field_1','label'=>'カスタムフィールド','name'=>'custom_field','type'=>'text'))));}

例 3: 複数のロケーションタイプを登録

複数のロケーションタイプを一度に登録する例です。

acf_register_location_type(array('name'=>'location_1','label'=>'ロケーション1','category'=>'post','public'=>true,'operands'=>array('==','!='),'values'=>array('post_type','page_template')));acf_register_location_type(array('name'=>'location_2','label'=>'ロケーション2','category'=>'user','public'=>true,'operands'=>array('==','!='),'values'=>array('user_role')));

例 4: 非公開のロケーションタイプを登録

非公開のロケーションタイプを登録する例です。

acf_register_location_type(array('name'=>'private_location','label'=>'非公開ロケーション','category'=>'post','public'=>false,'operands'=>array('==','!='),'values'=>array('post_type')));

例 5: カスタムロケーションタイプの値を動的に設定

動的にロケーションタイプの値を設定する例です。

$dynamic_values=array('post_type','page_template');acf_register_location_type(array('name'=>'dynamic_location','label'=>'動的ロケーション','category'=>'post','public'=>true,'operands'=>array('==','!='),'values'=>$dynamic_values));

注意点

  • ロケーションタイプの名前は一意である必要があります。
  • ロケーションタイプの設定が正しくない場合、フィールドグループが期待通りに動作しない可能性があります。