私はできるだけよく説明しようとします(私の英語が悪い場合は申し訳ありません、これは私の母国語ではありません)。functions.phpで複数のpre_get_postsを使用するには?
私は2つのカスタムポストタイプと2つのカスタムポストタイプアーカイブページを持っています。
これらのページに表示されている投稿をフィルタリングするために、function.phpファイル内に2つの異なる関数を作成しました。以下のコードでは、 "pre_get_posts"関数を使用しています。
私のfunctions.php:
add_action('pre_get_posts', 'my_pre_get_posts');
function my_pre_get_posts($query) {
some code here...
}
add_action('pre_get_posts', 'my_pre_get_posts_2');
function my_pre_get_posts_2($query) {
some code here...
}
問題は、第二の機能(my_pre_get_posts_2)が最初のもの(my_pre_get_posts)に上書きされ、最初の関数は、カスタムポストタイプのアーカイブのページで作業していないことです。
私はis_post_type_archive('custom_post_type')
を使用しようとしましたが、最初の機能はまだ動作していません。
最初の機能を特定のカスタムポストタイプのアーカイブページにのみ割り当て、ほかのページでは呼び出さないために必要なことはありますか?
実際に*コールバックは1つ必要ないことに注意することが重要です。あなたは2つを使うことができますが、それぞれに条件を追加する必要があります。 – rnevius