2017-02-06 7 views
1

私は、カスタムポスト型の分類用語に対してforeachループを作成したいと考えています。WP_Queryから特定の用語を除外する

具体的には、すべての商品カテゴリをクエリするループは必要ですが、カテゴリ「特別提供」ではなくカテゴリサブカテゴリではありません。ボーナスは、商品にもカテゴリークエリーがなく、すべてをASCオーダーで注文する(商品とカテゴリーを別々にソートするのではなく、すべて同時にソートする必要があります)。

私のコードでは、必要に応じてどのように動作させる必要がありますか?

現在のコード:

<?php 

$args = array(
    'post_type' => 'products', 
    'showposts' => -1, 
    'post_status' => 'publish', 
    'parent' => 0, 
    'hide_empty' => true, 
    'tax_query' => array(
     'taxonomy' => 'categories', 
     'field' => 'slug', 
     'terms' => array('special-offers', 'other-terms'), 
     'operator' => 'NOT IN', 
    ), 
); 

$terms = get_terms('categories', $args); 

foreach ($terms as $term) : 

    echo '<h2>' . $term->name . '</h2>'; 

endforeach; 

?> 
+0

WPクエリーのコンフィグレーション配列をget_termsに渡していますが、これはこのメソッドがとるものではありません。ここで使用できる有効な選択基準は、https://developer.wordpress.org/reference/functions/get_terms/ – CBroe

+0

にあります。大丈夫です。しかし、問題はカテゴリを持っていない投稿をどのように表示するかです。残念ながら、私は熟練したWordPressのコーデックスを理解するわけではありません。だから、私はコードの例を得るのを助けるだろう。 – Jack

+0

あなたはそれを研究しようとしましたか? https://www.google.com/search?q=wordpress+query+get+posts+without+taxonomy – CBroe

答えて

1

最終的な解決策は、taxonomy引数にexcludeとterm idを追加することでした。それはタクソノミのためであり、foreachループを使用します。自分の時間のためのCBroeへhttp://www.codeforest.net/wordpress-tip-show-posts-no-category-term

おかげで、STE:

$args = array(
    'parent' => 0, 
    'hide_empty' => true, 
    'exclude' => 13, 
); 

と答えていない分類でカスタムポストタイプのポストはここに見つけることができるかに出力します。

+0

あなたはそれを並べ替えていただきありがとうございます。あなたが望んでいる唯一の唯一の人物ではないのですか?私は元のアイデアをもう一度見てみることをお勧めします。 IDが変更された場合、または除外する必要があるIDを除外する必要がある場合は、IDのハードコーディングが中断されます。より動的なものを探してみてください。 – ste

1

あなたの税のクエリは別のアレイ内で探している必要があります。

'tax_query' => array(
    array(
    'taxonomy' => 'categories', 
    'field' => 'slug', 
    'terms' => array('special-offers', 'other-terms'), 
    'operator' => 'NOT IN', 
    ) 
), 

それ以外は問題ありません。

+0

同じ結果です。用語を除外しない。 – Jack

+0

Hmm。少なくとも私たちは正しい道を歩んでいます。申し訳ありませんが、現在この問題をデバッグするのに無料ではありません – ste

関連する問題