我正在尝试获取最近的帖子,循环浏览这些帖子,然后再获取其余的帖子。这是我的循环的当前结构:
$recentArgs = array(
'posts_per_page' => 4,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'suppress_filters' => true
);
$recentQuery = new WP_Query($recentArgs);
$recent_post_ids = [];
foreach ($recentQuery->posts AS $recentPost) {
$recent_post_ids[] = $recentPost->ID;
}
然后我循环浏览并执行HTML。然后,我这样做:
<?php wp_reset_query(); wp_reset_postdata(); ?>
我也没有运气尝试过
<?php rewind_post(); ?>
这是第二个WP_Query调用,它返回与上面相同的结果:
$allQuery = new WP_Query([
'posts_per_page' => 10,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'suppress_filters' => true,
'exclude' => $recent_post_ids,
]);
我确定我缺少一些愚蠢/简单的东西。但是,非常感谢您的帮助。
答案 0 :(得分:0)
也许有更好的方法可以做到这一点,但是我通过使用get_posts()解决了它。因此,现在我的第一个和第二个(带有diff参数)查询看起来像这样:
<?php wp_reset_query(); wp_reset_postdata(); ?>
<?php
$allPosts = get_posts([
'posts_per_page' => 10,
'orderby' => 'post_date',
'order' => 'DESC',
'post_type' => 'post',
'post_status' => 'publish',
'suppress_filters' => true,
'exclude' => $recent_post_ids,
]);
再次感谢。