問題描述

我正在 sub.example.org 域下運行一個德國 NGO 站點。最近,我為其瑞士 spin-off 添加了 sub.example.ch

兩個 (子) 域都指向相同的物理位置,WP 安裝 (不是多站點) 。

我有這樣的設置,例如,sub.example.ch/register 將正確顯示 sub.example.org/register 下找到的內容。

但是,當瑞士訪問者使用常規的 on-site 鏈接衝浪該網站時,他或她將不可避免地在”regular” 域中使用,因為這些域可以通過 get_home_urlget_site_url()(或者它們的 less-deep) 在一般設置中使用”WordPress address”(或”site address”) get_bloginfo()等同物) 。

理想情況下,我希望訪問者可以在他或她曾經到達該網站的域名下繼續瀏覽。因此,我想我必須以某種方式過濾上述函數的返回值。據我所知,一個過濾器不存在。

  1. 有誰有這樣的事情的經驗和體面的解決方案嗎?

  2. 這可能是一個愚蠢的想法,我應該放在首位嗎?

最佳解決方案

您可以過濾主機的選項請求。

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