
您现在的位置是:首页 > WordPress教程WordPress教程
WordPress如何设置重定向
WP集市
2025-09-01
【WordPress教程】
1120人已围观
-
先说为啥要搞重定向。比如你换了篇文章的链接,老地址有人访问就404了,这时候得让老地址自动跳到新地址。或者整个站点域名换了,也得让旧域名指向新域名。WordPress里常见的就是这两种情况。
-
最简单的办法是用插件。比如装个 "Redirection",搜一下安装激活就行。进去之后设置源URL和目标URL,比如 /old-post 跳转到 /new-post,还能看跳转日志。适合不想碰代码的人。
-
但要是想自己写代码,就得动主题的 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,不然代码继续跑会出问题。
- 有时候得处理一堆链接,比如整个分类迁移。可以用正则匹配,像这样:
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。
- 还有种情况是带参数的跳转。比如旧网站有 ?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 临时跳转,因为参数可能随时变。
-
最后记得测试。跳转后清空浏览器缓存再试,或者用 curl -I 看HTTP头。搞错了容易循环跳转或者死循环,那就尴尬了。
-
其实Apache或Nginx层面做重定向更快,但WordPress里用代码改更灵活,适合动态内容。如果是固定链接,还是建议服务器配置里直接写,减轻PHP负担。
差不多就这些,按需选方法就行。
Tags:
文章版权声明:除非注明,否则均为WP集市原创文章,转载或复制请以超链接形式并注明出处。
上一篇:WordPress如何优化数据库
