Advanced CustomFieldsを使用してカスタム検索を構築しています。select
カスタム検索で、という名前のフィールドを使用しました'city'
。また、標準のカテゴリ分類法を使用しています。この2つを組み合わせて連携するのは難しいと思います。
カテゴリのみを使用して検索しようとするとうまく機能するため、カスタムフィールドが期待どおりに機能していないか、まったく機能していないと思います。
これが私のvar_dump
:
array (size=4)
'relation' => string 'OR' (length=2)
'post_type' => string 'post' (length=4)
'tax_query' =>
array (size=4)
'taxonomy' => string 'category' (length=8)
'field' => string 'id' (length=2)
'terms' =>
array (size=1)
0 => int 147
'operator' => string 'IN' (length=2)
'meta_query' =>
array (size=2)
'relation' => string 'AND' (length=3)
0 =>
array (size=4)
'key' => string 'city' (length=8)
'value' =>
array (size=1)
0 => string 'New York'
'type' => string 'CHAR' (length=6)
'compare' => string '=' (length=1)
私の間違いの方向性はありますか?
標準の分類法をに設定しtax_query
、カスタムフィールド(高度なカスタムフィールドプラグインによって作成された)をに設定する必要がありますmeta_query
。また、私の場合、カスタムフィールドに複数の値を設定する必要がありました。これは、複数の配列を作成することで実現できます。
実例は次のとおりです。
$taxquery['tax_query'] = array(
'taxonomy' => 'category',
'field' => 'id',
'terms' => $categories,
'operator'=> 'IN'
);
$query->set('tax_query', $taxquery);
$filter = array(
'relation' => 'OR',
array(
'key' => 'location',
'value' => 'New York',
'compare' => 'LIKE'
),
array(
'key' => 'location',
'value' => 'Chicago',
'compare' => 'LIKE'
),
);
$query->set('meta_query',$filter);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加