web-dev-qa-db-ja.com

現在ロードしているページにフックと実行の順番を一覧表示するにはどうすればいいですか?

現在のページで呼び出されるフックのリストを知る必要があります。アクションに割り当てられている優先順位を特定し、そのアクションをフィルタリングする方法。 Wordでデフォルトのアクションを削除したい場合はエラーが発生しますか?実行するデフォルトのアクションを上書きしてもよいですか。

add_filter( $tag, $function_to_add, $priority, $accepted_args ); 

この場合、優先順位を50に変更します。私は10やデフォルトと比較して少しの変更も得られません。この優先度の値が実行順序のためのものであれば、値を大きくしたり小さくしたりする必要があります。

1
Babu

これをあなたのfunctions.phpに貼り付けてください

//LIST ALL HOOKS

function dump_hook( $tag, $hook ) {
    ksort($hook);

    echo "<pre>>>>>>\t$tag<br>";

    foreach( $hook as $priority => $functions ) {

    echo $priority;

    foreach( $functions as $function )
        if( $function['function'] != 'list_hook_details' ) {

        echo "\t";

        if( is_string( $function['function'] ) )
            echo $function['function'];

        elseif( is_string( $function['function'][0] ) )
             echo $function['function'][0] . ' -> ' . $function['function'][1];

        elseif( is_object( $function['function'][0] ) )
            echo "(object) " . get_class( $function['function'][0] ) . ' -> ' . $function['function'][1];

        else
            print_r($function);

        echo ' (' . $function['accepted_args'] . ') <br>';
        }
    }

    echo '</pre>';
}

function list_hooks( $filter = false ){
    global $wp_filter;

    $hooks = $wp_filter;
    ksort( $hooks );

    foreach( $hooks as $tag => $hook )
        if ( false === $filter || false !== strpos( $tag, $filter ) )
            dump_hook($tag, $hook);
}

Index.php、single.php、または他のページにこれを書いて、特定の関数に適用されているフィルタを確認します 優先度と共に

<?php  list_hooks(); ?>

このメソッドはあなた自身のフィルタを作成することさえ示します。

4
Sudeep K Rana

優先順位の低い番号が最初に実行され、大きい番号が最後に実行されます。

2
czerspalace