如何在WordPress的header.php中设置子目录跳转至外部网站
无需插件实现WordPress子目录页面跳转外部网站
下面提供几种无需插件的实现方式,你可以根据需求选择:
方法1:修改主题header.php文件
找到当前主题目录下的header.php,在<head>标签最开始的位置添加以下代码:
<?php // 针对slug为my-ebook的WordPress页面 if (is_page('my-ebook')) { wp_redirect('https://你的Gumroad页面地址', 301); exit; } // 若要匹配任意子目录路径(非WordPress页面),启用下面的判断 // $current_uri = $_SERVER['REQUEST_URI']; // if (strpos($current_uri, '/my-ebook/') === 0) { // wp_redirect('https://你的Gumroad页面地址', 301); // exit; // } ?>
⚠️ 注意:直接修改主题文件会在主题更新后丢失代码,强烈建议使用子主题进行修改。
方法2:通过functions.php添加钩子(推荐)
这种方法无需修改主题模板,代码不会随主题更新丢失,通过WordPress动作钩子实现:
在当前主题(或子主题)的functions.php文件末尾添加:
function custom_redirect_ebook() { // 匹配slug为my-ebook的WordPress页面 if (is_page('my-ebook')) { wp_redirect('https://你的Gumroad页面地址', 301); exit; } // 要匹配/my-ebook/下的所有子页面,取消下面的注释 // $current_path = trim($_SERVER['REQUEST_URI'], '/'); // if (str_starts_with($current_path, 'my-ebook')) { // wp_redirect('https://你的Gumroad页面地址', 301); // exit; // } } add_action('template_redirect', 'custom_redirect_ebook');
301代表永久重定向,适合固定跳转需求;临时跳转可改为302。
方法3:服务器层面跳转(效率最高)
Apache服务器
修改站点根目录的.htaccess文件,在WordPress默认规则之前添加:
# 仅跳转/my-ebook/页面 Redirect 301 /my-ebook/ https://你的Gumroad页面地址 # 跳转/my-ebook/下的所有子页面 # RedirectMatch 301 ^/my-ebook/(.*)$ https://你的Gumroad页面地址
Nginx服务器
修改Nginx配置文件(通常是nginx.conf或站点单独配置文件),添加:
# 仅跳转/my-ebook/页面 location = /my-ebook/ { return 301 https://你的Gumroad页面地址; } # 跳转/my-ebook/下的所有子页面 # location ~ ^/my-ebook/ { # return 301 https://你的Gumroad页面地址; # }
服务器层面跳转无需加载WordPress核心,响应速度最快。
内容的提问来源于stack exchange,提问作者Joey J
相关产品推荐
相关产品推荐

