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

如何让特定分类的归档URL同步添加/blog/前缀?

解决方案

你当前的代码只处理了单篇文章的链接(通过post_link过滤器),分类归档页面的链接需要通过category_link过滤器单独处理。以下是完整的修改方案:

1. 添加分类归档链接修改函数

在你的主题functions.php中添加以下代码,用于修改目标分类的归档URL:

function custom_category_archive_permalink($permalink, $term) {
    // 替换为你需要修改的分类ID数组
    $target_cat_ids = array(23, 34, 64);
    
    // 仅处理分类 taxonomy 且属于目标ID的分类
    if ($term->taxonomy === 'category' && in_array($term->term_id, $target_cat_ids)) {
        // 在分类slug前添加/blog/前缀
        $permalink = trailingslashit(home_url('/blog/' . $term->slug));
    }
    return $permalink;
}
add_filter('category_link', 'custom_category_archive_permalink', 10, 2);

2. 优化文章链接函数(可选但更稳妥)

你原来的文章链接函数直接拼接post_name可能存在丢失分类结构的风险,建议修改为基于原链接修改的方式,确保保留分类slug:

function custom_category_permalink($permalink, $post) {
    $target_cat_ids = array(23, 34, 64);
    if (has_term($target_cat_ids, 'category', $post)) {
        $home_url = trailingslashit(home_url());
        // 提取原链接的相对路径,在前面添加/blog/
        $relative_path = str_replace($home_url, '', $permalink);
        $permalink = trailingslashit(home_url('/blog/' . $relative_path));
    }
    return $permalink;
}
add_filter('post_link', 'custom_category_permalink', 10, 2);

3. 刷新固定链接规则

添加代码后,必须进入WordPress后台的设置 → 固定链接页面,直接点击「保存更改」按钮(无需修改任何设置),让WordPress更新permalink规则缓存,否则新的URL可能不会生效。

这样修改后,目标分类的归档页面URL会从website.com/news/变为website.com/blog/news/,同时文章链接保持你需要的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 15:15:25