問題描述

作為 WordPress 管理員新手,我剛剛透過我的第一個 non-automatic WordPress 升級。

我將五種不同的 WordPress 安裝從 4.1.3 升級到 4.2 。

它們都是指託管在同一個主機上的不同網站,一個主域和四個外掛域。

在每個網站上,我使用以下 plug-ins:

  • Akismet 在;

  • Yoast 的 Google Analytics(分析)

  • Google Adsense

  • Google XML Sitemaps 和

  • Jetpack 由 WordPress.com 。

為了簡化進一步管理,我考慮將所有五個安裝整合到單個多站點安裝中。

到目前為止,我發現很難找到關於這些外掛與外掛的網站上的多站點安裝的相容性的確切答案。

外掛的頁面是搜尋這個的正確的地方嗎?

是否有中央位置可以找到這些資訊?

最佳解決方案

有兩種型別的多站點相容性:

  1. 被動相容性:不做任何具體的細節,只是工作而不破壞任何東西。

  2. 活動相容性:更改或擴充套件多站點特定行為。

我想你出來了 1. 見我的 slides from WordCamp Prague 2015 第二部分。

沒有關於多站點的任何內容的外掛不應該被啟用為網路外掛。例如,WooCommerce 在安裝過程中建立一些自定義表。如果你啟用它,network-wide,子區別沒有得到這些表,天空將落在你的頭上。

不幸的是,大多數外掛不檢查它們的啟用型別,所以他們讓你做錯了啟用。

相關的是 UX 問題,如管理員指標或特殊的”About” 頁面,您必須在 non-compatible 外掛的子站點點選。 Yoast』s WP SEO is one example 。這個外掛很快就會被修復,我猜。 🙂

其他問題取決於您對該多站點的操作。如果您正在建立一個多語言網站,其中每個網站都使用一種語言編寫,並且這些網站彼此連線,則您要在撰寫內容時同步該帖子。這意味著您可以在掛鉤 save_post 上呼叫 switch_to_blog(),並儲存連線的帖子。 save_post 在一個請求中將被多次呼叫。許多外掛不知道這樣的情況,所以他們只是覆蓋連線的帖子的後期元資訊,認為他們仍然是第一個帖子。

注意處理後期後設資料的外掛,並且缺少這樣的支票:

if ( is_multisite() && ms_is_switched() )
    return FALSE;

這些外掛不相容。

類似的,雖然很難指定,但是當外掛觸控使用者元欄位或重寫規則時是一個問題。

一些外掛嘗試將檔案內容寫入檔案,而不會在檔名中包含站點 ID 。他們也很可能被打破了。

像湯姆說的:建立一個測試安裝,執行你可以想象的每一個用例。你不能信任外掛頁面,通常還沒有足夠的資訊。

次佳解決方案

除非外掛宣告它是相容的,唯一可靠的方法是建立本地多站點安裝並進行測試。

有時你可以找到跡象,但這些都是壞的程式碼的症狀,例如硬編碼資料庫表名,而不是使用 $wpdb 中的字首,在這種情況下,即使不使用多站點,我建議您避免插入外掛

參考文獻

注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。