問題描述
我正在 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。