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

WordPress首页分页切换时固定内容重复显示解决方法

问题原因

首页模板中的固定静态内容未做分页状态判断,无论当前访问的是第几页,这部分代码都会被直接执行输出,和你实现的文章列表分页逻辑本身无关。

实现方案

核心逻辑:仅当访问首页第1页时渲染固定静态内容,分页页码大于1时跳过静态内容输出,只加载对应页码的文章列表。
具体修改步骤如下:

  • 先做兼容式页码获取,同时适配WordPress两种首页模式(最新文章首页、静态页面首页)的分页参数,避免页码识别失效
  • 给首页固定静态内容增加第一页判断逻辑,把所有不需要在分页页显示的内容包裹在判断条件内
  • 修正自定义文章查询、分页组件的页码传参,替换为兼容后的页码变量,避免分页异常
修正后代码参考
<?php
global $post;
// 兼容两种首页模式获取当前页码
$current_page = max(1, get_query_var('paged') ? get_query_var('paged') : get_query_var('page'));

// 仅第一页输出固定静态内容,以下大括号内放你所有首页专属固定内容
if ($current_page === 1) {
    // 例:首页Banner、站点介绍、固定推荐模块等原有静态内容全部放在这里
?>
    <!-- 这里写你原有静态内容的HTML/PHP代码 -->
<?php
}

// 以下为文章列表逻辑,所有分页状态下都会渲染
$args = array(
    'paged' => $current_page, // 替换为兼容处理后的页码变量
    'post_type'=> 'post',
    'post_status' => 'publish',
    'posts_per_page' => 6,
);
$result = new WP_Query( $args );
if($result->have_posts()){
    while($result->have_posts()){
        $result->the_post();
        $count = get_post_meta( get_the_ID(), 'post_views_count', true );
        $post_thumbnail_id = get_post_thumbnail_id( $post->ID );
    ?>
        <div class="post-content <?php the_ID();?>">
            <?php if(!empty($post_thumbnail_id)) {
                $img_ar =  wp_get_attachment_image_src( $post_thumbnail_id, 'medium' );
                ?>
                <img src="<?php echo $img_ar[0];?>">
            <?php
            }?>
            <h2 class="title"><?php the_title() ?></h2>
            <p class="author">By <?php the_author();?></p>
            <p class="date"> <?php the_date()?> </p>
            <p class="views"> <?php echo gapp_get_post_pageviews(); ?> Views </p>
            <p> <?php the_excerpt();?> </p> 
        </div>
        
    <?php   
        }
     
        $big = 999999999;
        $total_pages = $result->max_num_pages;
        if ($total_pages > 1){
        echo paginate_links(array(
            'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
            'format' => '?paged=%#%',
            'current' => $current_page, // 替换为兼容处理后的页码变量
            'total' => $total_pages,
            'mid_size' => 5,
            'end_size' => 2,
            'prev_next' => true,
            'prev_text'    => __('PREV'),
            'next_text'    => __('NEXT'),
        ));
    }       
        wp_reset_postdata();
}   
?>
注意事项
  • 不要将文章列表、分页组件的代码放入第一页的判断条件内,否则分页页将无法正常显示文章内容
  • 如果站点配置了伪静态,修改后如果出现分页404,可到WordPress后台「设置-固定链接」页面点击保存,刷新重写规则即可
  • 必须保留wp_reset_postdata()逻辑,避免自定义查询污染全局主查询,导致其他页面功能异常

内容的提问来源于stack exchange,提问作者Gerald Yvan Cabarrubias

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:39:18