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

WordPress自定义固定链接:为breaking分类设置专属URL结构

解决WordPress分类文章自定义URL结构的404问题

你遇到的问题是仅修改了前端显示的URL,但WordPress的路由系统未识别新结构,导致返回404。要实现需求,需同时处理链接生成和路由重写两部分,以下是完整解决方案:

步骤1:替换自定义链接生成函数

将你原有的代码替换为以下内容,修正路径错误并确保逻辑准确:

function custom_breaking_permalink($permalink, $post, $leavename) {
    // 仅处理已发布且属于breaking分类的文章
    if ($post->post_status === 'publish' && in_category('breaking', $post)) {
        $permalink = trailingslashit(home_url('/breaking/' . $post->post_name));
    }
    return $permalink;
}
add_filter('post_link', 'custom_breaking_permalink', 10, 3);

步骤2:添加路由重写规则

添加重写规则,让WordPress能识别/breaking/post_title格式的URL并匹配到对应文章:

function custom_breaking_rewrite_rule() {
    // 匹配/breaking/任意字符的URL,将文章别名传递给查询参数
    add_rewrite_rule(
        '^breaking/([^/]+)/?$',
        'index.php?name=$matches[1]',
        'top'
    );
}
add_action('init', 'custom_breaking_rewrite_rule');

步骤3:刷新固定链接规则

完成代码添加后,必须登录WordPress后台执行以下操作:

  • 进入设置 → 固定链接页面
  • 无需修改任何设置,直接点击「保存更改」按钮
    这一步会让WordPress更新.htaccess文件(或Nginx配置),使新的重写规则生效。

额外说明

  • 若文章同时属于多个分类,该逻辑会优先给breaking分类的文章添加URL前缀,其他分类的文章保持原有结构。
  • 如果你使用Nginx服务器,需要手动在配置文件中添加对应重写规则(替代.htaccess的自动生成),示例规则:
    rewrite ^/breaking/([^/]+)/?$ /index.php?name=$1 last;
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 13:42:07