我的网站有5000多个帖子,我正试图在一个单独的页面上显示最新的100个帖子与分页(每页5个帖子)。
<?php
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array(
'post_type' => 'post',
'posts_per_page' => 5,
'paged' => $paged
);
$wp_query = new WP_Query($args);
if( $wp_query->have_posts() ) :
while( $wp_query->have_posts() ) : $wp_query->the_post();
get_template_part( 'template-parts/content', get_post_type() );
endwhile;
the_posts_navigation();
wp_reset_postdata();
else :
get_template_part( 'template-parts/content', 'none' );
endif;
?>我使用上面的代码,每页显示5个帖子,但我可以找到一种方法来限制总帖子计数为100。我浏览了各种博客文章和各种SO帖子,但都找不到任何解决方案。
有几个帖子说,使用“数字帖子”=> 100会有所帮助。但这也没有帮助。我正在寻找一个解决方案使用普通的the_posts_navigation();因为我正在使用无限滚动插件加载滚动上的帖子。提前谢谢。
发布于 2020-03-06 18:15:55
希望这对你有帮助。
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type'=>'post',
'posts_per_page' => 5,
'paged' => $paged,
);
$loop = new WP_Query( $args );
if ( $loop->have_posts() ) {
while ( $loop->have_posts() ) : $loop->the_post();
get_template_part( 'template-parts/content', get_post_type() );
endwhile;
$total_pages = $loop->max_num_pages;
if ($total_pages > 1){
$current_page = max(1, get_query_var('paged'));
echo paginate_links(array(
'base' => get_pagenum_link(1) . '%_%',
'format' => '/page/%#%',
'current' => $current_page,
'total' => $total_pages,
'prev_text' => __('< Previous'),
'next_text' => __('Next >'),
));
}
}
wp_reset_postdata();
?>发布于 2020-03-06 18:06:29
您可以按如下方式计算限制:
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
$args = array(
'post_type' => 'post',
'posts_per_page' => 5,
'paged' => $paged
);
if($args['posts_per_page'] * $args['paged'] <= 100){
$wp_query = new WP_Query($args);
if( $wp_query->have_posts() ) :
while( $wp_query->have_posts() ) : $wp_query->the_post();
get_template_part( 'template-parts/content', get_post_type() );
endwhile;
the_posts_navigation();
wp_reset_postdata();
else :
get_template_part( 'template-parts/content', 'none' );
endif;
}https://stackoverflow.com/questions/60561592
复制相似问题