查询多个元值并仅在同时具有两个元值时显示

时间:2014-04-10 作者:user2955824

我已经有一段时间被一个问题困住了,我似乎无法解决它。

我想查询帖子,仅当其选中的2个元值包含我查询过的元值时才显示它们。

例如:

如果一个帖子有123和321,那么我希望它们被显示出来。但如果它有123和123,则不应显示,反之亦然。

我一直在看这段代码,我想不出来:

array(
       \'key\' => \'featured\',
       \'value\' => \'yes\',
       \'compare\' => \'NOT NULL\',
    ),
 array(
       \'key\' => \'type\',
       \'value\' => \'event\',
       \'compare\' => \'NOT NULL\',
    )
因此,我想澄清一下:

如果featured 值为“是”,并且type 值为“event”=>应显示该值,但

如果featured 值为“是”,并且type 值为“party”=>itshouldn\'t 将显示

谢谢,大泽。

2 个回复
SO网友:codearachnid

我相信你要找的是relation 中的参数meta_query. 我假设你正在使用WP_Query 类以根据示例中的语法进行调用。您可能希望确保没有其他插件通过挂接到pre_get_posts.

$meta_query_AND = array(
    \'meta_query\' => array(
        \'relation\' => \'AND\',
        array(
               \'key\' => \'featured\',
               \'value\' => \'yes\',
               \'compare\' => \'NOT NULL\',
            ),
         array(
               \'key\' => \'type\',
               \'value\' => \'event\',
               \'compare\' => \'NOT NULL\',
            )
     )
    );
$test_query = new WP_Query( $meta_query_AND );
第一步是评估meta_query => relation 在您的wp_query 后果

SO网友:gmazzap

“compare”应为“=”,因为您正在比较精确的值,“relation”也必须为“AND”。两者都应该是默认值,但最好确定

$meta_query = array (
  array(
    \'key\' => \'featured\',
    \'value\' => \'yes\',
    \'compare\' => \'=\'
  ),
  array(
    \'key\' => \'type\',
    \'value\' => \'event\',
    \'compare\' => \'=\'
  ),
  \'relation\' => \'AND\'
);

$featured_events = new WP_Query( array( \'meta_query\' => $meta_query ) );

结束

相关推荐