1

私はこの問題について多くのことを検索していましたが、決定的なものは見つかりませんでした。多分誰かがここで私を助けることができます!

カスタム投稿タイプ「場所」と、2 つのカスタム分類法「場所エリア」と「場所カテゴリ」があります。これらの 2 つの分類法によるドロップダウン フィルターを構築しています。フィルターが空で、両方の分類法が選択されている場合、すべてがうまく機能します。しかし、タクソノミーの1つに値があり、別のタクソノミーがnullの場合、それを機能させる方法がわかりません。

これが私のクエリです:

if(($category == null) && ($area == null)) {

    //Usual query without taxonomy

  } else {
    $args = array(
      'post_type'      => 'place',
      'tax_query' => array(
            array(
                'taxonomy' => 'placecat',
                'field' => 'slug',
                'terms' => $category
            ),
            array(
                'taxonomy' => 'placearea',
                'field' => 'slug',
                'terms' => $area
            )
        )
    );
  }
  $the_query = new WP_Query( $args );

null 値はすべての分類用語を意味すると思っていましたが、存在しない用語を探しているようで、空の結果が返されます。

用語の値がnullの場合、クエリから分類を除外する方法はありますか?

4

1 に答える 1

2

個別にチェックすると、個別に追加することもできます。

$args['post_type'] = 'place';

if ( $category != null ) {  
    $args['tax_query'][] =  array(
        'taxonomy' => 'placecat',
        'field' => 'slug',
        'terms' => $category
     );
}

if ( $area != null ) {  
    $args['tax_query'][] = array(
        'taxonomy' => 'placearea',
        'field' => 'slug',
        'terms' => $area
     );
}

このシナリオではtax_query、null でない場合にのみパラメータに追加します。

于 2012-10-23T13:18:42.933 に答える