web-dev-qa-db-ja.com

カスタム投稿タイプがクエリで無視されています

私は "results"と呼ばれるカスタム投稿タイプがあり、私の単一の結果ページでメインループの後に2番目のクエリを実行したいと思います。 2番目のクエリは次のとおりです。

$myquery = new WP_Query(array(
 'post_type' => 'endorsements',
   'tax_query' => array(
     array(
     'taxonomy' => 'results_categories',
     'field'    => 'slug',
     'terms' => array( 'facilitative-leaders', 'organization' )
     )
  ),
));

上記のクエリで2回目のループを作成しました。返されるのは、 "results"カスタム投稿タイプで、指定した 'endorsements'投稿タイプではない投稿です。

すべてのtax_query情報を取り出して「裏書き」を要求するだけでうまくいく場合は、税務情報が必要です。

私の質問が正しいことを私が見ることができる限り見ることができます。

任意の助けは大歓迎です!

1
mToce

分類アーカイブページの内容を除外するために、これらのページでpre_get_postを使用していることがわかりました。

add_action( 'pre_get_posts', 'exclude_cpt' );
function exclude_cpt( $query ) {
    if ( $query->is_tax('results_categories') ) {
         $query->set( 'post_type', array('results') );
    }
    return $query;
}

しかし、これがメインのクエリでのみ行われていることを確認するのを忘れていました。最後の関数は以下のとおりです。

add_action( 'pre_get_posts', 'exclude_cpt' );
function exclude_cpt( $query ) {
    if ( $query->is_tax('results_categories') && $query->is_main_query() ) {
         $query->set( 'post_type', array('results') );
    }
    return $query;
}
2
mToce