对于WP\\U查询,我有以下参数:
$args = array(
\'post_type\' => array( \'cpt-1\', \'cpt-2\' ),
\'post_status\' => \'publish\',
\'posts_per_page\' => 9,
\'meta_query\' => array(
\'relation\' => \'OR\',
array(
\'key\' => \'key-1\',
\'compare\' => \'NOT EXISTS\'
),
array(
\'key\' => \'key-1\',
\'value\' => 1,
\'compare\' => \'!=\'
)
),
\'tax_query\' => array(
\'relation\' => \'AND\',
array(
\'taxonomy\' => \'ctax-1\',
\'field\' => \'slug\',
\'terms\' => \'term-1\',
\'operator\' => \'NOT IN\'
),
array(
\'taxonomy\' => \'ctax-2\',
\'field\' => \'slug\',
\'terms\' => \'term-2\',
\'operator\' => \'NOT IN\'
)
),
);
现在,我想向循环中添加自定义帖子类型
cpt-3
但仅当其帖子具有自定义meta的自定义字段值时
key-2
设置为1。
有可能吗?
SO网友:Johansson
如果key-2
唯一分配给cpt-3
post类型,然后可以向查询参数添加另一个元查询参数:
array(
\'key\' => \'key-2\',
\'value\' => 1,
\'compare\' => \'=\'
)
如果没有,则可以运行另一个查询,然后按如下方式合并它们:
$final_query = array_merge( (array) $query_1, (array) $query_2 );
但是,您应该使用
get_posts()
而不是
WP_Query()
因为无法将对象与方法合并。这个
get_posts()
返回可以合并的帖子数组。
然而,你应该注意到,元查询是昂贵的,并会减慢你的网站(可能)。