我能够用下面的代码来查询标准格式和视频格式的最新帖子:
$args = array(
'post_status' => 'publish',
'orderby' => 'date',
'posts_per_page' => 10,
'tax_query' => array(
'relation' => 'OR',
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => array( 'post-format-video', 'post-format-gallery' ),
'operator' => 'NOT IN'
),
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => array( 'post-format-video' ),
'operator' => 'IN'
)
)
);这在OR条件下工作得很好,因为我正在尝试获得标准和视频后期格式。但是,我必须使用AND条件添加另一个分类查询。它看起来像这样:
$args = array(
'post_status' => 'publish',
'orderby' => 'date',
'posts_per_page' => 10,
'tax_query' => array(
'relation' => 'OR',
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => array( 'post-format-video', 'post-format-gallery' ),
'operator' => 'NOT IN'
),
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => array( 'post-format-video' ),
'operator' => 'IN'
),
// This should be and
array(
'taxonomy' => 'custom-regions',
'field' => 'slug',
'terms' => array( 'region-1', 'region-2' ),
'operator' => 'IN'
)
)
);据我所知,组合是不可能的(或者是吗?)tax_query中的or和and条件。如果是,有没有一种方法可以运行这个查询,这样我就可以获得标准格式或post格式,这些格式只属于某些区域?
发布于 2021-04-26 20:01:28
你可以做这样的事情。
$args = array(
'post_status' => 'publish',
'orderby' => 'date',
'posts_per_page' => 10,
'tax_query' => array(
'relation' => 'AND',
array(
'relation' => 'OR',
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => array( 'post-format-video', 'post-format-gallery' ),
'operator' => 'NOT IN'
),
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => array( 'post-format-video' ),
'operator' => 'IN'
),
),
array(
'taxonomy' => 'custom-regions',
'field' => 'slug',
'terms' => array( 'region-1', 'region-2' ),
'operator' => 'IN'
)
)
);https://stackoverflow.com/questions/67265276
复制相似问题