我一直在阅读WP_Query Codex寻找一种方法来浏览所有包含帖子格式的帖子'视频'在给定类别中,或者'图像'
如果这还不够,这个类别由变量$catslug
给出(我需要这样做)。
我只找到循环通过以下其中一种
的方法图片或视频
图片和类别
视频和类别,
但我需要的更复杂,如下:
post-format-image
和$catslug
)或(post-format-video
和$catslug
)
是否可以在tax_query
内执行tax_query
?
这样的事情:
$args = array(
'post_type' => 'post',
'tax_query' => array(
'relation' => 'OR',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array($catslug)
),
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => array( 'post-format-image' )
)
),
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => array($catslug)
),
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => array( 'post-format-video' )
)
)
)
);
$query = new WP_Query( $args );
任何人都知道任何解决方法或黑客来获得这个? 也许我只是想错了路。
答案 0 :(得分:1)
这实际上是一个很好的问题。这里的简单答案是你不能使用多个tax_query
。
这让我在上班前快速测试了以下场景。只是为了好玩,我去尝试使用tax_query
的类别参数,但这给了我所需类别的帖子和也属于两种帖子格式的帖子
我想出了一个可能的解决方案,遗憾的是我现在无法对此进行测试。
这是我在这里的路线:
由于您需要随机结果,我建议您将帖子格式添加到数组中
$post_format_array = array( 'post-format-video', 'post-format-image' );
您现在将使用shuffle
来重新排列数组,然后从该数组中获取第一个条目,该条目将是图像视频,并在tax_query
中使用该条目。
shuffle( $post_format_array );
通过这种方式,您可以获得所需类别以及视频或图片发布格式的帖子。
$args = array(
'post_type' => 'post',
'tax_query' => array(
'relation' => 'AND',
array(
'taxonomy' => 'category',
'field' => 'slug',
'terms' => $catslug,
),
array(
'taxonomy' => 'post_format',
'field' => 'slug',
'terms' => $post_format_array[0]
),
),
);
$query = new WP_Query( $args );