現在私はpre_get_posts
上で動く3つの関数を持っています。私はこれを次のように呼びます。
add_action( 'pre_get_posts', 'private_groups' );
add_action( 'pre_get_posts', 'search_results' );
add_action( 'pre_get_posts', 'name_profiles' );
これにより、私は関数をきちんと分離した状態に保つことができますが、一度組み合わせた関数を呼び出すのではなく、リソースを使い果たすのではなく、同じアクションを3回呼び出すのですか。
私はあなたが意味すると思います
add_action( 'pre_get_posts', 'private_groups' );
add_action( 'pre_get_posts', 'search_results' );
add_action( 'pre_get_posts', 'name_profiles' );
versus
add_action( 'pre_get_posts', 'combined_into_single_callback' );
あなたはちょうどを使用して違いを確認することができます。 memory_get_usage()
と timer_stop()
。それを手助けするためのたくさんの良いプラグインがあります。
それらは無関係なコールバックであり、おそらく保守がより簡単であるように思われるので、私は最初のものに行くと言うでしょう。
private_groups()
、search_results()
そしてname_profiles()
とcombined_into_single_callback()
の間で、あなたがそこで実行するコールバック関数にほとんど依存すると私は予想するでしょう。
フックの設定自体は、グローバル配列内の3つの新しい追加要素にすぎないため、リソースを使い果たしてはいけません。
pre_get_posts
を使用するときに注意する必要があるのは、対応するWP_Query
インスタンスのみをターゲットとし、すべてのインスタンスに対して高価なコードブロックを実行しないようにすることです。