我创建了一个post循环,显示两种不同类型的post ('portfolio'和'post')。
<?php
$work = array(
'post_type' => array('portfolio','post'),
'posts_per_page' => '8',
);
$loop = new WP_Query( $work );
while ( $loop->have_posts() ) : $loop->the_post();
if ( get_post_type() == 'portfolio' ) {
// My portfolio code will go here
}
else if ( get_post_type() == 'post' ) {
// My post code will go here
}
endwhile;
?>
这似乎工作得很好,但我想做的是限制每个类型显示的帖子数量。我已经将其设置为总体限制为8,但我想进一步扩展并将每个类型限制为4(4 + 4 =总体8)。
嘿,我想不出一个简单的解决方案,但你有一些实现这一目标的可能性。
-
查询所有帖子并制作计数器(如果帖子非常多,性能会很差)
$work = array( 'post_type' => array('portfolio','post'), 'posts_per_page' => -1, ); $count_portfolio = 0; $count_post = 0; $loop = new WP_Query( $work ); while ( $loop->have_posts() ) : $loop->the_post(); if ( get_post_type() == 'portfolio' && $count_portfolio < 4 ) { $count_portfolio++; } else if ( get_post_type() == 'post' && $count_post < 4) { $count_post++; } if($count_portfolio >=3 && $count_post >=3) { break; } endwhile;
-
进行两个不同的查询-一个用于最近四个作品集,一个用于最近4个帖子
// pseudo code $allposts = array_merge($query1->posts, $query2->posts); usort($allposts,'orderbydate_custom_function'); foreach($allposts as $post) { // do output }
- 使用$wpdb自定义调用来查询您想要的内容