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

WordPress修改固定链接结构:将博客分页URL从/blog/2改为/blog/page/2

解决方案

问题说明

  • paginate_links 过滤器传入的$link是已生成的分页URL字符串,不是包含base、format属性的参数数组,所以你无法通过该参数直接修改分页结构
  • var_dump无输出大概率是!is_front_page() && is_home()的判断条件未匹配到对应页面,或者你的主题分页输出未调用WordPress原生paginate_links函数

实现代码(直接加入主题functions.php即可)

以下代码不需要修改htaccess、不需要服务器权限,仅通过主题函数配置即可完成需求,同时兼容旧链接自动跳转,避免出现404或重复内容问题:

// 添加博客分页重写规则+旧链接301跳转
function custom_blog_pagination_rewrite() {
    // 注册新分页格式的重写规则
    add_rewrite_rule(
        '^blog/page/([0-9]+)/?$',
        'index.php?paged=$matches[1]',
        'top'
    );
    // 旧格式链接自动跳转到新格式
    if ( preg_match( '/^blog\/([0-9]+)\/?$/', $_SERVER['REQUEST_URI'], $matches ) ) {
        wp_redirect( home_url( '/blog/page/' . $matches[1] . '/' ), 301 );
        exit;
    }
}
add_action( 'init', 'custom_blog_pagination_rewrite' );

// 统一修改所有分页输出的链接格式
function filter_paginate_links_output( $link ) {
    return preg_replace( '/\/blog\/([0-9]+)\//', '/blog/page/$1/', $link );
}
add_filter( 'paginate_links', 'filter_paginate_links_output', 99, 1 );

// 适配原生分页参数,从根源生成正确格式的链接(兼容WordPress 5.5及以上版本)
function custom_pagination_args( $args ) {
    if ( is_home() && !is_front_page() ) {
        $args['format'] = 'page/%#%/';
        $args['base'] = home_url( '/blog/%_%' );
    }
    return $args;
}
add_filter( 'paginate_links_args', 'custom_pagination_args', 10, 1 );

生效操作

代码添加完成后,进入WordPress后台→设置→固定链接,直接点击「保存设置」即可,不需要修改现有固定链接配置,操作后重写规则就会正式生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:06:03