acf_filter_field_groups()


Advanced Custom Fields (ACF)のacf_filter_field_groups()関数は、フィールドグループのリストをフィルタリングするために使用されます。この関数を使用すると、特定の条件に基づいてフィールドグループをカスタマイズできます。

構文

acf_filter_field_groups( array $field_groups );
  • $field_groups (array) — フィルタリング対象となるフィールドグループの配列。

例1: 特定のフィールドグループを名前でフィルタリング

特定の名前を持つフィールドグループだけを取得します。

<?php
add_filter('acf/load_field_groups', function( $field_groups ) {
    return acf_filter_field_groups(array_filter($field_groups, function($group) {
        return $group['title'] === 'カスタムフィールドグループ名';
    }));
});
?>

例2: フィールドグループをIDで除外

指定したIDを持つフィールドグループを除外します。

<?php
add_filter('acf/load_field_groups', function( $field_groups ) {
    return acf_filter_field_groups(array_filter($field_groups, function($group) {
        return $group['ID'] !== get_option('excluded_group_id');
    }));
});
?>

例3: 特定の投稿タイプに関連付けられたフィールドグループを取得

指定した投稿タイプに関連付けられたフィールドグループを取得します。

<?php
add_filter('acf/load_field_groups', function( $field_groups ) {
    return acf_filter_field_groups(array_filter($field_groups, function($group) {
        return in_array('custom_post_type', $group['post_types']);
    }));
});
?>

例4: 有効化されているグループのみを取得

有効なフィールドグループだけを取得します。

<?php
add_filter('acf/load_field_groups', function( $field_groups ) {
    return acf_filter_field_groups(array_filter($field_groups, function($group) {
        return $group['active'];
    }));
});
?>

例5: 特定の条件に基づいてグループを動的に変更

条件に基づいてフィールドグループを動的に変更します。

<?php
add_filter('acf/load_field_groups', function( $field_groups ) {
    return acf_filter_field_groups(array_map(function($group) {
        if ($group['title'] === '変更前の名前') {
            $group['title'] = '変更後の名前';
        }
        return $group;
    }, $field_groups));
});
?>

注意事項

この関数を使用する場合、フィルタリングされた結果が期待通りであることを必ず確認してください。不適切なフィルタリングはフィールドグループの表示に影響を与える可能性があります。