WordPress模板插件定制

您现在的位置是:首页 > WordPress教程WordPress教程

WordPress如何设置重定向

查看 WP集市 的更多文章WP集市 2025-09-01 【WordPress教程】 1120人已围观

  1. 先说为啥要搞重定向。比如你换了篇文章的链接,老地址有人访问就404了,这时候得让老地址自动跳到新地址。或者整个站点域名换了,也得让旧域名指向新域名。WordPress里常见的就是这两种情况。

  2. 最简单的办法是用插件。比如装个 "Redirection",搜一下安装激活就行。进去之后设置源URL和目标URL,比如 /old-post 跳转到 /new-post,还能看跳转日志。适合不想碰代码的人。

  3. 但要是想自己写代码,就得动主题的 functions.php 文件。用 wp_redirect 函数,比如这样:

add_action('template_redirect', 'my_custom_redirect');
function my_custom_redirect() {
    if (is_page('old-page')) {
        wp_redirect(home_url('/new-page/'), 301);
        exit;
    }
}

这里 301 是永久跳转,对SEO友好。记得加 exit,不然代码继续跑会出问题。

  1. 有时候得处理一堆链接,比如整个分类迁移。可以用正则匹配,像这样:
add_action('template_redirect', 'category_redirect');
function category_redirect() {
    $current_url = $_SERVER['REQUEST_URI'];
    if (preg_match('/^\/old-category\/(.*)/', $current_url, $matches)) {
        wp_redirect(home_url('/new-category/') . $matches[1], 301);
        exit;
    }
}

这样 /old-category/post-name 就会跳到 /new-category/post-name。

  1. 还有种情况是带参数的跳转。比如旧网站有 ?ref=123 这类参数,新站结构变了但想保留参数。可以这样搞:
add_action('template_redirect', 'parameter_redirect');
function parameter_redirect() {
    if (isset($_GET['ref'])) {
        $ref = $_GET['ref'];
        wp_redirect(home_url('/new-path/?reference=' . $ref), 302);
        exit;
    }
}

这里用了 302 临时跳转,因为参数可能随时变。

  1. 最后记得测试。跳转后清空浏览器缓存再试,或者用 curl -I 看HTTP头。搞错了容易循环跳转或者死循环,那就尴尬了。

  2. 其实Apache或Nginx层面做重定向更快,但WordPress里用代码改更灵活,适合动态内容。如果是固定链接,还是建议服务器配置里直接写,减轻PHP负担。

差不多就这些,按需选方法就行。

Tags:

WordPress模板插件定制

WP集市

V管理员
文章 280 篇 | 评论 0 次
最新文章