問題描述

有沒有簡單或簡單的方法來排除迴圈中的自定義分類法中的所有帖子?我一直在尋找高低,SE,SO 或谷歌似乎都沒有一個直接的答案。

我知道它可以透過一個 WPDB 查詢完成,但是似乎像大規模的繩索跳到應該是相當簡單的東西。

最佳解決方案

解決這個問題的方式並不是真正的宣傳,而應該是這樣。

您可以執行以下操作:

$args['tax_query'] = array(
    array(
        'taxonomy' => 'category',
        'terms' => array('cat', 'dog'),
        'field' => 'slug',
        'operator' => 'NOT IN',
    ),
);
query_posts($args);

運運算元引數可以採用其他術語,但上述程式碼基本上是說從’cat’ 或’dog’ 這兩個術語中獲取’category’ 分類的所有帖子。

次佳解決方案

以下是自定義帖子型別和自定義分類法的操作方法:

$happening = new WP_Query(
array(
  'post_type'  => 'news',        // only query News post type
  'tax_query' => array(
    array(
        'taxonomy'  => 'news-cat',
        'field'     => 'slug',
        'terms'     => 'media', // exclude items media items in the news-cat custom taxonomy
        'operator'  => 'NOT IN')

        ),
   )
);

這完美地排除了自定義帖子型別的自定義分類。只是想新增查詢迴圈程式碼來完成程式碼片段:while($ the_query-> have_posts()):$ the_query-> the_post();

第三種解決方案

您將需要使用 NOT EXISTS 運運算元以及傳遞分類標記,這將告訴查詢不要在迴圈中包含您的自定義分類法中的任何選定類別。

要排除分類學”fruit” 中的所有帖子 (不論水果種類),這裡是程式碼段:

$args = array(
    'post_type'      => 'post',
    'tax_query'      => array(
        array(
            'taxonomy' => 'fruit',
            'operator' => 'NOT EXISTS'
        )
    )
);

$query = new WP_Query( $args );

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。