acf_is_filter_enabled()


Advanced Custom Fields (ACF)のacf_is_filter_enabled()関数は、特定のフィルターが有効かどうかを確認するために使用されます。この関数は、ACFフィルターが有効または無効であるかを動的にチェックし、条件付きの動作を実現できます。

構文

acf_is_filter_enabled( string $filter );
  • $filter (string) — チェックするフィルターの名前。たとえば、'acf/load_field''acf/validate_value'など。

戻り値:

  • bool — 指定したフィルターが有効である場合はtrue、無効である場合はfalse

例 1: フィルターが有効かどうかの確認

<?php
if( acf_is_filter_enabled( 'acf/load_field' ) ) {
    echo 'フィルターが有効です。';
} else {
    echo 'フィルターが無効です。';
}
?>

例 2: 条件付きフィルターロジック

<?php
if( acf_is_filter_enabled( 'acf/validate_value' ) ) {
    // フィルターが有効な場合のみ実行
    add_filter( 'acf/validate_value', 'my_custom_validation', 10, 3 );
}
?>

例 3: フィルターを切り替える

<?php
if( ! acf_is_filter_enabled( 'acf/load_field' ) ) {
    acf_enable_filter( 'acf/load_field' );
}
?>

例 4: 複数フィルターの有効化状態の確認

<?php
$filters = ['acf/load_field', 'acf/validate_value', 'acf/update_value'];
foreach( $filters as $filter ) {
    echo $filter . ': ' . ( acf_is_filter_enabled( $filter ) ? '有効' : '無効' ) . '<br>';
}
?>

例 5: 条件に応じたフィルターの適用

<?php
if( acf_is_filter_enabled( 'acf/load_value' ) ) {
    add_filter( 'acf/load_value', 'my_load_value_filter', 10, 3 );
} else {
    add_filter( 'acf/load_value', 'my_default_load_value', 10, 3 );
}
?>

注意事項:

  • acf_is_filter_enabled()はACFの内部フィルター名を正確に指定する必要があります。
  • フィルターが有効でない場合、適切なロジックを適用することでエラーを防ぐことができます。