Wordpress元查询搜索

时间:2013-11-18 21:23:25

标签: php wordpress search wordpress-plugin

我有自定义字段名为“motor_brand”的帖子。此元数值保存为["honda","suzuki","kawasaki","toyota"]

如果我通过meta_query搜索本田,那么所有拥有honda元值的pos如果我想搜索本田和川崎,那么如果我想搜索川崎,本田和丰田那么就会出现拥有元值本田的本田或川崎元值,川崎或丰田可以是上诉。

我已经像这样设置了元查询

meta_ query = array(
     'relation'=>'OR'
       array(
        meta_key =>'motor_brand'
        value => "honda",
        compare => "LIKE"
        ),
       array(
        meta_key =>'motor_brand'
        value => "kawasaki",
        compare => "LIKE"
        ),
)

这很好,但是当我尝试

meta_ query = array(
     'relation'=>'OR'
       array(
        meta_key =>'motor_brand'
        value => "honda",
        compare => "LIKE"
        ),
       array(
        meta_key =>'motor_brand'
        value => "kawasaki",
        compare => "LIKE"
        ),
       array(
        meta_key =>'motor_brand'
        value => "toyota",
        compare => "LIKE"
        ),
)

那不起作用

我想搜索许多汽车品牌

1 个答案:

答案 0 :(得分:1)

也许你想试试这个:

$meta_query = array(
   array(
       'key' => 'motor_brand',
       'value' => array('honda','kawasaki','toyota'), 
       'compare' => 'IN',
   )
);

它应生成WHERE motor_brand IN ('honda','kawasaki','toyota'),如果您直接在数据库上执行,则应显示结果。

修改

哦对不起,我看到你写了

  

我有post的名为“motor_name”的自定义字段。此元值已保存   如[“honda”,“suzuki”,“kawasaki”,“toyota”]

IN如果你像这样存储它就不起作用。但是motor_name呢?您的字段名为motor_name,但您的查询要求motor_brand