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

旧自定义站点URL重定向到新WordPress站点的实现方案咨询

自定义PHP代码在WordPress中的使用方式

你给出的代码只有参数赋值逻辑,缺少完整的重定向判断和跳转逻辑,正确的集成方式如下:

  1. 登录WordPress后台,进入「外观-主题文件编辑器」,找到当前主题的functions.php文件
  2. 在文件末尾添加如下完整代码(兼容文章和分类的旧链接跳转):
add_action('template_redirect', 'old_site_link_redirect');
function old_site_link_redirect() {
    // 处理旧文章链接
    if (isset($_GET['id']) && is_numeric($_GET['id'])) {
        $post_id = intval($_GET['id']);
        // 验证文章ID存在再跳转
        if (get_post_status($post_id) === 'publish') {
            wp_redirect(get_permalink($post_id), 301);
            exit;
        }
    }
    // 处理旧分类链接
    if (isset($_GET['category']) && is_numeric($_GET['category'])) {
        $cat_id = intval($_GET['category']);
        $cat_link = get_category_link($cat_id);
        if ($cat_link) {
            wp_redirect($cat_link, 301);
            exit;
        }
    }
}
  1. 保存文件即可生效,代码里的301是永久重定向,会告诉搜索引擎旧链接权重转移到新链接,不影响SEO。

PHP重定向和.htaccess重定向对比

.htaccess重定向优势

  • 不需要加载WordPress核心程序,响应速度更快,服务器资源消耗更低
  • 规则生效层级更高,即使WordPress程序出现故障也不会影响跳转
  • 适合你这种参数直接映射的简单规则场景,性能远高于PHP重定向

PHP重定向优势

  • 支持复杂逻辑判断,比如需要额外校验文章/分类是否存在、有特殊ID映射关系、需要记录跳转日志等场景
  • 不需要修改服务器配置文件,对不了解服务器配置的用户更友好

对你的场景而言,优先选择.htaccess重定向,规则简单且性能更好。

更优的实现方案

方案1:.htaccess配置(最优)

直接在站点根目录的.htaccess文件的WordPress默认规则之前添加如下规则即可:

RewriteEngine On
# 旧文章ID跳转
RewriteCond %{QUERY_STRING} ^id=(\d+)$
RewriteRule ^index\.php$ /?p=%1 [L,R=301]
# 旧分类ID跳转
RewriteCond %{QUERY_STRING} ^category=(\d+)$
RewriteRule ^index\.php$ /?cat=%1 [L,R=301]

方案2:WordPress重定向插件(最省心)

如果不会修改服务器配置文件,可以直接安装Redirection等WordPress重定向插件,可视化配置上述参数映射规则,不需要写任何代码,还支持跳转日志统计、404错误排查等功能,适合新手使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:36:02