WordPress如何通过functions.php钩子实现指定路径404重定向
WordPress 指定URL直接返回404页面的实现方案
不需要安装额外插件,使用WordPress原生的template_redirect钩子即可实现,操作步骤如下:
- 打开自定义主题根目录下的
functions.php文件,将以下代码粘贴到文件末尾(如果文件末尾存在?>闭合标签,请将代码粘贴到该标签之前):
add_action('template_redirect', 'custom_url_force_404'); function custom_url_force_404() { // 配置需要返回404的URL路径,填写域名后的路径部分,开头保留斜杠 $force_404_paths = [ '/page/sub-page', // 需添加多个路径时按上述格式续写即可 '/test/demo-page', ]; // 获取当前用户访问的URI路径 $current_uri = $_SERVER['REQUEST_URI']; // 匹配到目标路径时触发404逻辑 if (in_array($current_uri, $force_404_paths)) { global $wp_query; // 将当前请求标记为404 $wp_query->set_404(); // 输出HTTP 404状态码 status_header(404); // 加载你已创建的主题404.php模板,地址栏不会发生跳转 get_template_part('404'); exit; } }
- 特殊场景适配:
- 如果需要模糊匹配某个路径前缀下的所有页面(比如所有
/page/开头的路径都返回404),可以将上方的判断条件替换为:// PHP 8.0及以上版本用这个 if (str_starts_with($current_uri, '/page/')) // PHP 8.0以下版本用这个 if (strpos($current_uri, '/page/') === 0) - 配置完成后清空WordPress站点缓存、浏览器缓存后再测试,避免旧缓存影响验证效果
- 如果需要模糊匹配某个路径前缀下的所有页面(比如所有
内容的提问来源于stack exchange,提问作者Lucy
相关产品推荐
相关产品推荐

