使用META_QUERY搜索多个自定义字段

时间:2011-03-31 作者:hereswhatidid

我正在尝试为自定义帖子类型创建搜索结果列表,我遇到的问题是“meta\\u query”参数将传递的值串在一起的方式。它似乎将每个“meta\\u query”值视为“AND”,而不是“OR”。下面是我使用的代码:

$strsearch = \'lorem\';
$args = array(
    \'post_type\' => \'products\',
    \'meta_query\' => array(
        array(\'key\' => \'_product_make\',\'compare\' => \'LIKE\',\'value\' => $strsearch),
        array(\'key\' => \'_product_model\',\'compare\' => \'LIKE\',\'value\' => $strsearch)
        )
    ,\'s\' => $strsearch);
$resource_query = new WP_Query($args);
当我单独搜索任何字段时,我会得到所需的结果。当我将它们一起使用时,它显示为未找到,因为我正在搜索的字符串可能只出现在下面列出的三个字段之一。有没有办法让“meta\\u query”将每个传递的字段比较都视为“OR”?

1 个回复
最合适的回答,由SO网友:scribu 整理而成

是的,由于WP 3.2,您可以设置“关系”参数:

\'meta_query\' => array(
    \'relation\' => \'OR\',
    array(\'key\' => \'_product_make\',\'compare\' => \'LIKE\',\'value\' => $strsearch),
    array(\'key\' => \'_product_model\',\'compare\' => \'LIKE\',\'value\' => $strsearch)
)
请参见http://core.trac.wordpress.org/ticket/17011

结束