current_filter()


WordPress関数current_filter()は、現在実行中のフィルタまたはアクションフックの名前を取得するために使用されます。この関数は主に、フィルタやアクションのコールバック関数内で使用されます。

構文

current_filter();

例1: 現在のフィルタ名を取得

以下のコードは、現在実行中のフィルタ名を取得し表示します。

<?php
add_filter( 'example_filter', function() {
    echo '現在のフィルタ: ' . current_filter();
} );
?>

例2: フィルタ内で条件分岐を実行

現在のフィルタ名に基づいて異なる処理を実行します。

<?php
add_filter( 'example_filter', function( $value ) {
    if ( current_filter() === 'example_filter' ) {
        $value .= ' フィルタが適用されました。';
    }
    return $value;
} );
?>

例3: フックのデバッグ

以下のコードは、特定のフィルタ内で現在のフィルタ名をログに記録します。

<?php
add_action( 'wp_head', function() {
    error_log( '現在のアクション: ' . current_filter() );
} );
?>

例4: ネストされたフックの確認

現在のフィルタ名を確認し、ネストされたフィルタ内での動作を確認します。

<?php
add_filter( 'example_filter', function() {
    add_filter( 'nested_filter', function() {
        echo 'ネストされたフィルタ: ' . current_filter();
    } );
    apply_filters( 'nested_filter', '' );
} );
?>

例5: 複数のフィルタで共通の処理を実行

以下のコードは、複数のフィルタで現在のフィルタ名を使用して共通処理を実行します。

<?php
function handle_filters() {
    echo '現在のフィルタ: ' . current_filter();
}
add_filter( 'filter_one', 'handle_filters' );
add_filter( 'filter_two', 'handle_filters' );
?>

注意点

  • current_filter()は、フィルタやアクションコールバックの内部で使用することが前提です。
  • 特定のフィルタが実行されているか確認するために条件分岐と併用してください。

関連機能: