我正在网站上建立一个部分,将两种不同的帖子类型合并为一个循环,然后随机显示它们。问题是,我很难找到一种方法来限制每种类型的帖子数量。
这是我尝试过的:
一个具有多种帖子类型的查询可以通过一个数组来实现:
$args = array( 'post_type' => array( 'photos', 'quotes' ), ...
...但不能限于每种类型的特定帖子数。
在运行WP_Query之前合并两个查询参数数组:
$photos = array( 'post_type' => 'photos', 'posts_per_page' => 15, 'orderby' => 'rand' ); $quotes = array( 'post_type' => 'quotes', 'posts_per_page' => 5, 'orderby' => 'rand' ); $args = $photos + $quotes; // Also tried array_merge( $photos, $quotes );
没有运气。发生的是后者变量
$quotes
被覆盖$photos
并且仅显示引号。通过类型转换将两个WP_Query对象合并在一起:
$photos_query = new WP_Query( $photos ); $quotes_query = new WP_Query( $quotes ); $result = (object)array_merge( (array)$photos_query, (array)$quotes_query );
... 等等。
我可能可以直接对数据库使用SQL查询,但是我需要能够将这两个单独的帖子类型组合为一个循环,并随机排列,并且每种类型限制为一定数量的帖子。
谢谢你的帮助!