Multiple Domain

外掛說明

重要通知:這個外掛加入了新開發者,因此會開始繼續維護開發,這個外掛也會是 goINPUT 的一部份。

Multiple Domain 能讓網站管理員為單一 WordPress 網站設定多個網域名稱。這個外掛不支援同一網站的個別網域名稱使用其他佈景主題或進階自訂設定,它僅能在網站使用多個網域名稱時,啟用恆定重新導向。如需進一步了解相關資訊,請參考〈建立多站網路〉。

當網站管理員在網站主機中為網站設定了多個網域名稱,則全部連結及資源都會指向預設網域名稱。這是預設的 WordPress 行為,但在安裝 Multiple Domain 並為外掛進行正確的組態後,它就會即時更新全部連結;如此一來,使用者在同一個網域名稱下會以端對端方式進行導向。

網站管理員還能對起始位置網址進行設定。如果網站管理員僅想要在指定的網域名稱下有一組可用的網址,便可以使用這項限制。

此外,這個外掛還能為每個網域名稱設定語言代碼,語言代碼會用於包含 hreflang 屬性的 <link> 標籤,這個標籤會附加在文件標頭。這項設定對 SEO 會有所幫助。

安裝方式

請依照以下步驟安裝外掛:

  1. 將解壓縮所得的外掛資料夾及全部檔案上傳至 /wp-content/plugins/multiple-domain 目錄,或直接在 WordPress 網站管理後台的 [外掛] 頁面直接安裝外掛。
  2. 在 WordPress 管理後台的 [外掛] 頁面啟用外掛。
  3. 前往 [設定]→[一般] 頁面為其他網域名稱進行組態。

常見問題集

如何協助這個外掛的開發工作?

大家隨時可以提出提取要求,以解決任何由外掛使用者回報的問題。如果對於如何修正有問題或有其他更好的建議,可以在對應的討論串進行討論。

如果要為外掛加入新功能,請在開始撰寫程式碼前,先以提出問題的方式說明新功能,以及它能如何協助使用者。

贊助開發工作

如果這個外掛對你的網站確實有幫助,可以透過贊助或送我 PlayStation 4 遊戲的方式支持外掛開發工作。請在 PayPal 上將贊助金額發送至 paypal@goinput.de

這個外掛是否會在網站主機中設定額外的網域名稱?

否。網站管理員必須自行設定其他網域名稱、DNS 記錄及任何必要項目,才能使用這個外掛。

是否能為同一個網站的個別網域名稱安裝不同的佈景主題、外掛及撰寫不同的內容?

否。如果想達成這種複雜的目的,網站管理員需要的是 WordPress 多站網路。這是 WordPress 3.0 後的內建功能。如需進一步了解,請參考〈建立多站網路〉。

是否有將網域型邏輯加入佈景主題中的方式?

是。網站管理員可以使用 MULTIPLE_DOMAIN_DOMAINMULTIPLE_DOMAIN_ORIGINAL_DOMAIN 常數以取得目前網域名稱及原始網域名稱。請注意,第一個值會會依據外掛設定進行檢查,因此可能無法反應 $_SERVER 或使用者瀏覽器的 HTTP_HOST 元素中的實際網域名稱。當主機使用的通訊埠號碼不是 80 或 443 (分別為 HTTP 及 HTTPS 的預設通訊埠號碼) 時,網址可能會加上通訊埠號碼。

請注意,在之前的版本中,這些常數使用了錯誤、缺少 I 的前置詞,因此舊的常數已淘汰不用。為了回溯相容性,因此舊的常數仍可使用,但會在未來版本中移除。

是否能為同一個網站的個別網域名稱建立自訂存取限制邏輯?

是。網站管理員可以使用 multiple_domain_redirect 動作完成這項需求。請參考這篇內容中的範例以了解如何完成。

是否能將目前的網域名稱與語言代碼建立關連?

是。網站管理員可以使用 MULTIPLE_DOMAIN_DOMAIN_LANG 常數以取得與目前網域名稱產生關聯的語言資訊。請注意,使用這個常數獲得的值不一定反應實際使用者語言或地區語言,因為這僅是外掛組態的語言集。此外,語言值可能為 null

請注意,在之前的版本中,這些常數使用了錯誤、缺少 I 的前置詞,因此舊的常數已淘汰不用。為了回溯相容性,因此舊的常數仍可使用,但會在未來版本中移除。

是否能在在文章或頁面的內容顯示目前的網域名稱?

是。外掛提供一個針對這項需求的短代碼。只要將 [multiple_domain] 加入文章/頁面中,檢視內容時會由目前的網域名稱取代。網站管理員可以撰寫類似「歡迎來到 [multiple_domain]!」這樣的內容,它會顯示為「歡迎來到 mydomain.com!」。

哪些網域名稱應該納入外掛設定?

任何要使用於同一個網站的網域名稱都必須加入外掛組態,即使是用於 WordPress 網站的 www 子網域及原始網域名稱都必須加入。從未對應的網域名稱存取網站時,可能會看到未預期的輸出。

是否能對原始網域名稱停用 hreflang 標籤的輸出?

是。相信網站管理員已經注意到,即使沒有對任何網域名稱設定語言關聯,網站的頁面標頭仍會有預設的 hreflang 標籤。如果要停用這個行為,請參照這篇內容的說明。

登入遭到鎖定時該如何解決?

在某些狀況下,使用錯誤的組態會造成無法登入至管理區域,並且會將網站頁面重新導向。如果發生這種狀況,有兩種解決方式:

  1. 刪除 wp-content/plugins/multiple-domain 這個外掛目錄。網站管理員可以從主機管理面板、FTP 用戶端或 SSH 用戶端進行這項操作。這個方式的缺點是無法再次安裝外掛,因為外掛組態資料仍在網站資料庫中。
  2. 使用以下 SQL 查詢語法從網站資料庫中刪除外掛組態:
    DELETE FROM {YOUR-PREFIX}_options WHERE option_name LIKE 'multiple-domain-%' (請將 {YOUR-PREFIX} 替換為你的網站主機資料庫前置詞)
    透過網站主機管理面板中的 phpMyAdmin 或使用 MySQL 用戶端,便能執行以上 SQL 查詢語法。

使用者評論

2021 年 10 月 5 日
Really helpfull plugin and great for SEO too.
2020 年 11 月 18 日
I used this plugin for a while, But my website Search Console after some days showed me a huge disaster! all of My URLs has lost their position and some of them changed to the new domain that I added recently. Also I used Canonical Tag From the Beginning of using this Plugin. But I deeply suggest to the developer to add an option for adding "noindex" TAG to the other domains that we add. and one More thing. My website font from 2nd domain was not loaded correctly. It was loading from base domain and for some unknown reasons it didn't load in browsers.
2020 年 9 月 19 日
Thank you! Works even with multilanguage, what was my main headache. You need to install only one wp site - on one of the domains. Add other domains in hosting panel (where you bought them usually) to redirect to the main site. (I attached them to one folder on hosting, for example). Add in global settings of wp all your domains in fields below main site link and base link. That is all.
2020 年 5 月 26 日
Plugin is good for WordPress but Not WooCommerce, It's not working good for the Storefront WooCommerce Shop Items, the original domain will be shown to the users. Hope you update this if possible. I gave you 5 stars because you deserve it, and I know that you can adjust it for WooCommerce very soon 🙂 Thanks for your effort.
閱讀全部 23 則使用者評論

參與者及開發者

以下人員參與了開源軟體〈Multiple Domain〉的開發相關工作。

參與者

Multiple Domain 外掛目前已有 2 個本地化語言版本。 感謝全部譯者為這個外掛做出的貢獻。

將 Multiple Domain 外掛本地化為台灣繁體中文版

對開發相關資訊感興趣?

任何人均可瀏覽程式碼、查看 SVN 存放庫,或透過 RSS 訂閱開發記錄

變更記錄

1.0.7

  • Changed the author to the new one.
  • Tested suport for WP 5.7

1.0.6

  • Fix URI generated for canonical tag.

1.0.5

  • Fixed issue with system routes when a base path is defined.

1.0.4

  • Fixed assertions in admin views.

1.0.3

  • Fixed XSS vulnerability in canonical/alternate tags.

1.0.2

  • Added low memory option. (Refer to https://github.com/straube/multiple-domain/issues/45 on how to enable it)
  • Constants starting with MULTPLE_ are now deprecated. They have a matching MULTIPLE_ prefixed constant.
  • Fixed constants starting with MULTPLE_, changed to MULTIPLE.

1.0.1

  • Fixed issue with regex used in domain replacement.

1.0.0

  • Locked out instructions to readme file.
  • API to programmatically change the domains list.
  • Don’t add canonical link if settings are false.

0.11.2

  • FAQ about removal of hreflang tags.
  • Fixed bug in domain replacement when it contains a slash (the regex delimiter).
  • Fixed issue in the domain replacement regex.

0.11.1

  • Fixed URI validation when there is a domain’s base restriction.

0.11.0

  • Add CHANGELOG.md file.
  • Added option to enable canonical tags.
  • Added %%multiple_domain%% advanced variable for Yoast.
  • Moved WordPress admin features to a separate class.
  • Renamed hreflang related methods.
  • Inline documentation review.
  • Minor refactoring.
  • Fixed issue with domain replacement.

0.10.3

  • Added public method to retrieve a given (or current) domain base path: getDomainBase($domain = null).
  • Minor code refactoring.

0.10.2

  • Fix minor notice message when loading the non-mapped original domain.
  • Added FAQ about plugin settings and domains.

0.10.1

  • Fix bug introduced in 0.10.0 with setups where the original domain is not present in the plugin settings.

0.10.0

  • Fix #31: Don’t add SSL when accessing via a Tor domain name
  • Moved HTML to view files.

0.9.0

  • Fixed bug in backward compatibility logic.
  • Added a class to <body> tag containing the domain name (e.g. multipled-domain-name-tld) to allow front-end customizations.

0.8.7

  • Loading Multiple Domain before other plugins to fix issue with paths.
  • Fix #38: Missing locales on language list (this issue was reopened and now it’s fixed)
  • Refactored initAttributes method.

0.8.6

  • Fix #39: Rolling back changes introduced in 0.8.4 and 0.8.5 regarding to avoid URL changes in the WP admin.

0.8.5

  • Fixed an issue introduced in 0.8.4 that breaks the admin URLs.
  • Fix #38: Missing locales on language list
  • Add [multiple_domain] shortcode to show the current language.

0.8.4

  • Fix: #36 Wrong host in URLs returned by the JSON API
  • Using singleton pattern for main plugin class.
  • Avoiding URL changes in the admin panel.

0.8.3

  • Fix: #34 hreflang tag error

0.8.2

  • Fix: #32 Image URLs not being re-written properly via Tor.

0.8.1

  • Fix: #23 Undefined index when using wp-cli.

0.8.0

  • Moved MultipleDomain class to its own file.
  • Fix: #14 Remove filter_input from plugin.
  • Attempt to fix #22.
  • Added MULTIPLE_DOMAIN_DOMAIN_LANG constant for theme/plugin customization.
  • Fix: #21 No ‘Access-Control-Allow-Origin’ header is present on the requested resource

0.7.1

  • Make the plugin compatible with PHP 5.4 again.

0.7

  • Code review/refactoring.
  • Added activation hook to fix empty settings bug.

0.6

  • Fix: #11 Redirect to original domain if SSL/https.

0.5

  • Added http/https for alternate link.

0.4

  • Fixed resolving host name to boolean.
  • Added Reflang links to head for SEO purpose. E.g.

0.3

  • Fixed bug when removing the port from current domain.
  • Added MULTIPLE_DOMAIN_ORIGINAL_DOMAIN constant to hold the original WP home domain.
  • Allowing developers to create custom URL restriction logic through multiple_domain_redirect action.
  • Improved settings interface.

0.2

  • Improved port verification.
  • Added MULTIPLE_DOMAIN_DOMAIN constant for theme/plugin customization.
  • And, last but not least, code refactoring.

0.1

This is the first release. It supports setting domains and an optional base URL for each one.