我已经有一段时间被一个问题困住了,我似乎无法解决它。
我想查询帖子,仅当其选中的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 将显示如果这没有意义,我很抱歉。
谢谢,大泽。
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 ) );