在搜索表单中使用自定义字段

时间:2016-11-18 02:03:06

标签: php wordpress

我正在使用高级自定义字段构建自定义搜索。我在名为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)

我的错误的任何指示?

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);