如何配置WordPress移除链接中的域名?
WordPress 移除菜单链接中的域名方法
1. 用内置钩子强制生成相对路径
在主题的functions.php文件中添加以下代码,直接将菜单链接转换为相对路径:
// 全局转换站点相关URL为相对路径 add_filter('home_url', 'wp_make_link_relative'); add_filter('site_url', 'wp_make_link_relative'); // 仅针对导航菜单做精准转换 add_filter('nav_menu_link_attributes', function($atts) { if (isset($atts['href'])) { $atts['href'] = wp_make_link_relative($atts['href']); } return $atts; });
wp_make_link_relative()是WordPress自带函数,会自动把带域名的绝对URL转为以站点根目录开头的相对路径。
2. 检查固定链接结构
进入后台「设置 → 固定链接」,确保选择「文章名称」或其他非「朴素」的结构(比如/%postname%/)。WordPress在使用这类结构化固定链接时,默认更倾向于生成内部相对链接。
3. 排查插件干扰
部分SEO、缓存或链接管理类插件会强制生成绝对URL。可以临时禁用所有插件,观察菜单链接是否恢复为相对路径,再逐个排查插件,找到问题插件后在其设置里查找「相对URL」相关选项调整。
4. 核对wp-config.php配置细节
虽然你已经配置了WP_HOME和WP_SITEURL,但需要注意:
- 两个常量的末尾要统一添加斜杠(比如
http://ec2-xx-xx-xx-xx.eu-west-3.compute.amazonaws.com/),统一格式有助于WordPress正确识别站点根目录。 - 若旧站用HTTPS、新站用HTTP,可尝试将新站的
WP_HOME和WP_SITEURL改为HTTPS协议(需服务器支持SSL),协议不一致可能导致URL生成规则差异。
内容的提问来源于stack exchange,提问作者kms333
相关产品推荐
相关产品推荐

