我正在使用高级自定义字段构建自定义搜索。我在名为select
的自定义搜索中使用了'city'
字段,而且我使用的是标准类别分类。我发现将这两者结合起来很困难。
我认为自定义字段无法按预期工作或根本无法正常工作,因为当我尝试仅使用类别进行搜索时效果很好。
这是我的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)
我的错误的任何指示?
答案 0 :(得分:0)
需要在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);