对于WP_Query,我有以下参数:
$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'
)
),
);现在,我想在循环中添加自定义post类型cpt-3,但前提是其post的自定义元key-2的自定义字段值设置为1。
有可能吗?
发布于 2018-02-21 10:10:33
如果将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()返回一个可以合并的帖子数组。
然而,您应该注意到,元查询是昂贵的,将减慢您的网站(可能)。
https://wordpress.stackexchange.com/questions/294695
复制相似问题