如何解决限制显示的自定义帖子数量
试图限制在我的首页上显示的(自定义帖子类型内容),分别仅限于“伤害部分”和“服务部分”的最新 6 和 12 个帖子。来自各自的档案。
下面的代码可以完美地从每个存档中提取数据,但我尝试将显示的帖子限制为 6 和 12 则没有。
感谢您花时间解释我哪里出错了。
<?php
// Injuries Custom Post Links
$args_injuries = array(
'post_type' => array('injuries'),'post_status' => 'publish','limit' => '6'
);
// Services Custom Post Links
$args_services = array(
'post_type' => array('services'),'limit' => '12'
);
$loop1 = new WP_Query($args_injuries);
$loop2 = new WP_Query($args_services);
?>
<?php if ( $loop1->have_posts() ) : while ( $loop1->have_posts() ) : $loop1->the_post(); ?>
<div class="tile">
<?php get_template_part('includes/front','page-injuries-content'); ?>
</div>
<?php endwhile; endif; ?>
<?php if ( $loop2->have_posts() ) : while ( $loop2->have_posts() ) : $loop2->the_post(); ?>
<div class="tile">
<?php get_template_part('includes/front','page-services-content'); ?>
</div>
<?php endwhile; endif; ?>
解决方法
使用posts_per_page 而不是limit。 Here 是一篇好文章,您可以在其中查看传递给 wp 查询的最常见参数。正如我从您的问题中了解到的,唯一的问题是将帖子限制为 6 和 12,而您的其余代码正在运行。在您的论点中,只需将 'limit' => '6' 替换为 'posts_per_page' => '6' 就可以了。另外,现在我注意到您没有使用 wp_reset_postdata(),它将 $post 全局恢复到主查询中的当前帖子。小心哪里调用,这个方法!它应该在 if 语句的结束标记之前,换句话说,只有在成功查询时才调用它!
<?php
// Injuries Custom Post Links
$args_injuries = array(
'post_type' => array('injuries'),'post_status' => 'publish','posts_per_page' => '6'
);
// Services Custom Post Links
$args_services = array(
'post_type' => array('services'),'posts_per_page' => '12'
);
$loop1 = new WP_Query($args_injuries);
$loop2 = new WP_Query($args_services);
?>
<?php if ( $loop1->have_posts() ) : while ( $loop1->have_posts() ) : $loop1->the_post(); ?>
<div class="tile">
<?php get_template_part('includes/front','page-injuries-content'); ?>
</div>
<?php
endwhile;
wp_reset_postdata(); // if query was successful reset the $post
endif;
?>
<?php if ( $loop2->have_posts() ) : while ( $loop2->have_posts() ) : $loop2->the_post(); ?>
<div class="tile">
<?php get_template_part('includes/front','page-services-content'); ?>
</div>
<?php
endwhile;
wp_reset_postdata(); // if query was successful reset the $post
endif;
?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。