問題描述
我在想,如果我將一個外掛從 WPMU 移植到 WP,反之亦然,我可能會遇到什麼樣的問題。
說我從頭開發了一個外掛,並希望這個外掛與兩者相容,我應該從 WPMU 或 WP 開始嗎?
最佳解決方案
您需要在兩個設定中進行測試,因為它們在許多情況下的行為不同。一些最顯著的區別是:
-
如果註冊啟用回撥,則需要檢查啟用是否為 network-wide 。如果是,run the activation logic for all the blogs 而不是當前的。
-
如果外掛是 network-activated,則新增新部落格時,常規啟用回撥將不會觸發,因此您需要建立一個掛鉤到
wpmu_new_blog
操作的額外回撥。它必須切換到新部落格,執行啟用邏輯,然後恢復當前部落格。新部落格的$id
作為第一個引數傳遞給處理程序。 -
如果您要建立自定義帖子型別,並希望顯示 「設定精選影像」 元框,則需要確保 「媒體上傳按鈕」 設定已啟用 「影像」 核取方塊。您可以使用
get_site_option( 'mu_media_buttons' )
進行檢查,並使用update_site_option()
進行設定。 -
上傳目錄的路徑是不同的,但只要您始終使用 wp_upload_dir()而不是常量,您將會很好。
-
每個部落格都有大部分資料庫表的自己的副本,它們以部落格 ID 為字首。您通常不需要做任何特殊的操作,只要您使用 API與資料庫進行互動即可。
-
使用者和 usermeta 表是例外; 它們在所有部落格中共享。
如果您需要使用 API函式臨時訪問另一個部落格的資料,然後 restore_current_blog()切換回來,您可以使用 switch_to_blog()。
您可以透過瀏覽 my plugin skeleton 的源來檢視啟用功能的完整示例。
次佳解決方案
沒有區別。
WordPress MU is no longer a separate project; it is continuing development as part of the main WordPress branch under the name multisite or MS.
在開發使用 multi-site 安裝時,由於有時檔案處理和路徑有點棘手。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。