You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

自定义WordPress文章循环分页失效,如何实现分页及调用对应函数?

解决WordPress自定义文章循环的分页问题

嘿,我来帮你搞定这个自定义循环的分页失效问题!你的代码里现在缺少了分页相关的查询参数,也没调用分页函数,所以没法生成正常的分页链接。下面一步步给你讲怎么改:

1. 给WP_Query添加分页核心参数

首先得在$args数组里补上两个关键参数:posts_per_page(设置每页显示的文章数量)和paged(获取当前页码)。修改后的参数应该是这样:

$paged = get_query_var('paged') ? get_query_var('paged') : 1;
$args = array(
    'post_type' => 'post',
    'posts_per_page' => 6, // 改成你想要的每页文章数
    'paged' => $paged
);

这里get_query_var('paged')会自动获取当前页面的页码,如果是第一页就默认设为1,确保分页逻辑能正确识别当前位置。

2. 在循环结束后调用分页函数

当你的文章循环跑完之后,要调用WordPress自带的the_posts_pagination()函数,它会自动生成适配主题样式的分页链接。另外别忘了用wp_reset_postdata()重置查询,避免影响后续的全局文章数据。

3. 修改后的完整代码

把这些改动整合到你的模板里,最终代码如下:

<?php 
// Template Name: Blog 
get_header(); 
?> 
<div id="primary" class="content-area">
    <section id="main" class="site-main blog" role="main">
        <div class="container">
            <div class="row">
                <div class="col-lg-9 col-xs-12">
                    <?php 
                    $paged = get_query_var('paged') ? get_query_var('paged') : 1;
                    $args = array(
                        'post_type' => 'post',
                        'posts_per_page' => 6,
                        'paged' => $paged
                    ); 
                    $post_query = new WP_Query($args); 
                    if($post_query->have_posts() ) { 
                        while($post_query->have_posts() ) { 
                            $post_query->the_post(); 
                            get_template_part('template-parts/content-blog', 'none'); 
                        } 
                        // 生成分页链接,可自定义文本和样式
                        the_posts_pagination( array(
                            'mid_size' => 2, // 中间显示的页码数量
                            'prev_text' => __('上一页', 'your-theme-slug'), // 替换成你的主题语言标识
                            'next_text' => __('下一页', 'your-theme-slug')
                        ) );
                        // 重置全局查询,避免影响后续内容
                        wp_reset_postdata();
                    } else {
                        // 没有文章时显示默认空状态
                        get_template_part('template-parts/content', 'none');
                    }
                    ?>
                </div>
                <div class="col-lg-3 col-xs-12">
                    <?php dynamic_sidebar( 'blog_sidebar' ); ?>
                </div>
            </div>
        </div>
    </section><!-- #main -->
</div><!-- #primary -->
<?php get_footer(); ?>

关键信息总结

  • 分页函数名称:推荐用the_posts_pagination()(适配主题默认样式,省心);如果需要完全自定义分页结构,可以用paginate_links()手动构建。
  • 调用位置:必须放在自定义文章循环结束之后,且在wp_reset_postdata()之前。
  • 核心前提:WP_Query的paged参数是分页生效的关键,一定要添加,不然分页无法识别当前页码。

内容的提问来源于stack exchange,提问作者Aleks Pvn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:11:47