web-dev-qa-db-ja.com

WP_Queryからカテゴリを除外する

私はカスタムウィジェットで表示されている簡単なデジタルダウンロードのアーカイブからカテゴリを除外しようとしている過去数日間壁に頭をぶつけてきました私が何をしようと関係ありません。

これは、 https://codex.wordpress.org/Class_Reference/WP_Query の指示に基づいて、私が使用しようとしているコードです。

$argsQuery = array(
    'posts_per_page' => 3,
    'post_type' => 'download',
    'tax_query' => array(
        array(
            'taxonomy' => 'download_category',
            'field' => 'slug',
            'terms' => 'custom-project',
            'include_children' => true,
            'operator' => 'NOT_IN'
        )
    ),
);
$get_latest_downloads = new WP_Query( $argsQuery );                         
$i=1;
while ( $get_latest_downloads->have_posts() ) : $get_latest_downloads->the_post();

//WIDGET BODY CODE

$i++;
endwhile;

'tax_query'の代わりに 'cat'を使用してみましたが、カテゴリ 'custom-project'がまだ投稿のループ内に表示されているため、成功しませんでした。

$argsQuery = array(
    'posts_per_page' => 3,
    'post_type' => 'download',
    'cat' => '-5',
);
$get_latest_downloads = new WP_Query( $argsQuery );                         
$i=1;
while ( $get_latest_downloads->have_posts() ) : $get_latest_downloads->the_post();

//WIDGET BODY CODE

$i++;
endwhile;

スラッグ名とカテゴリIDが正しいことを確認します。どんな助けでも大歓迎です。

1
risha riss

問題1

税務照会では、NOT INではなくNOT_INを使用する必要があります。それはあなたの納税申告が機能するのを妨げています(他のフィールドが正しいと仮定して)。

問題2

WP_Query()の引数では、catの代わりにcategory__not_inを使うべきです。そのため、コードを次のように変更します。

$argsQuery = array(
    'posts_per_page'   => 3,
    'post_type'        => 'download',
    'category__not_in' => 5 ,
);
2
Jack Johansson

https://codex.wordpress.org/Class_Reference/WP_Query

category__not_in(配列) - カテゴリIDを使う.

 $ argsQuery = array(
 'posts_per_page' => 3、
 'post_type' => 'download'、
 'category__not_in' => array(5) 、//配列、文字列ではない
); 
1
Joe