问题描述
我正在 sub.example.org
域下运行一个德国 NGO 站点。最近,我为其瑞士 spin-off 添加了 sub.example.ch
。
两个 (子) 域都指向相同的物理位置,WP 安装 (不是多站点) 。
我有这样的设置,例如,sub.example.ch/register
将正确显示 sub.example.org/register
下找到的内容。
但是,当瑞士访问者使用常规的 on-site 链接冲浪该网站时,他或她将不可避免地在”regular” 域中使用,因为这些域可以通过 get_home_url
或 get_site_url()
(或者它们的 less-deep) 在一般设置中使用”WordPress address”(或”site address”) get_bloginfo()
等同物) 。
理想情况下,我希望访问者可以在他或她曾经到达该网站的域名下继续浏览。因此,我想我必须以某种方式过滤上述函数的返回值。据我所知,一个过滤器不存在。
-
有谁有这样的事情的经验和体面的解决方案吗?
-
这可能是一个愚蠢的想法,我应该放在首位吗?
最佳解决方案
您可以过滤主机的选项请求。
在您的 wp-config.php
下面的行…
require_once ABSPATH . 'wp-settings.php';
… 添加以下行:
add_filter( 'pre_option_home', 'set_current_host' );
add_filter( 'pre_option_siteurl', 'set_current_host' );
function set_current_host()
{
return 'http://' . $_SERVER['HTTP_HOST'];
}
add_filter()
不可用,您应该将此代码保存在 wp-config.php
中。我不知道是否有副作用或不起作用的情况。不应该发生,而是彻底测试。
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。