2016-11-23 4 views
-1

Wordpressのインストール用にカスタム検索機能を作成しています。設定は少し複雑ですが、ここでは取り除かれた使用例があります。私は、[ 203, 204 ]
B)2つのカテゴリーのいずれかに存在するクエリー投稿

最初だけでなく2を存在する必要があります。

A)に存在するいずれかのカテゴリ:私たちがやりたい何

は、すべての記事を検索することですcategory__orcategory__andを組み合わせることができましたが、これは予期しない結果を引き起こしています(category__not_inの使用を無視してください):

Array 
(
    [category__not_in] => Array 
     (
      [0] => 202 
      [1] => 205 
     ) 

    [category__or] => Array 
     (
      [0] => 203 
      [1] => 204 
     ) 

    [cateogory__and] => 139 
    [offset] => 0 
    [paged] => 1 
    [posts_per_page] => 20 
) 

WP_Query()を使用して投稿を見つけるには、次の要件を使用してください:
category = (203 && 2) || (204 && 2)

+0

申し訳ありませんが、私はそれを取得しません。カテゴリ '(203 && 2)にある投稿を意味しますか? (204 && 2) '? –

+0

@JordiNebotはい、正確です。 – BenM

答えて

1

私は、複雑な分類クエリに対処する必要がある場合、私はいつも分類がデフォルトカテゴリー場合でもなどtax_query代わりの混乱category__inを扱う、category__andを、好みます。

<?php 
$args = [ 
    'posts_per_page' => 20, 
    'tax_query'  => [ 
     'relation' => 'OR', 
     [ 

      'taxonomy' => 'category', 
      'field' => 'term_id', 
      'terms' => [203, 2], 
      'operator' => 'AND', 
     ], 
     [ 
      'taxonomy' => 'category', 
      'field' => 'term_id', 
      'terms' => [204, 2], 
      'operator' => 'AND', 
     ], 
    ], 
]; 

$the_query = new WP_Query($args); 
+0

これは完璧です、ありがとうございます! – BenM

関連する問題