問題描述
是 drop-in 插件 – 當您直接在主題中複製插件 – 設計產品時。還是做了這個練習”organically” 。
最佳解決方案
這真的取決於開發人員以及他們如何訓練使用 WordPress 。一般來説,我看到了兩個思路:
Organic
一些開發人員在插件中發現一個他們覺得很酷的功能。不幸的是,他們不太確定如何實現它自己,但真的希望將功能包括在他們的主題。他們不會重新發明,而是將主題中包含一個 drop-in 插件。
在大多數情況下 (不是全部,但我看過的大部分),這是開發人員背景下缺乏經驗的直接後果。要麼他們不瞭解足夠的 PHP 來自己建立一個新的系統,要麼是太懶了,要嘗試一下。
產品設計
其他開發商也將嘗試迎合不瞭解更好的客户。他們的主題是圍繞着一個大型的 Flash-based 旋轉橫幅插件來構建的。該插件是相當 well-known,但他們不知道/當原作者將更新系統的代碼,他們的主題將不會理解。更改 DB 模式,更改參數,新掛鈎… 所有這些都可能會破壞不會相應更新的主題。
客户點擊”update” 不會冒險,而不必知道它會做什麼 (或者一旦主題完成,就將風險綁定到一個客户端的無限更新的字符串),他們會將當前工作版本和 hard-code 的快照主題。這樣他們就可以肯定地知道它將始終與他們的主題一起工作。
像 hard-coding 的外部引用類似於 Svn,然後禁用版本控制,因此您無法更新它:-)
為什麼沒關係
無論這種做法是有機還是故意的,這仍然是一個非常糟糕的主意!
無論主題是否更新,插件是否更新?WordPress 將最終更新。把你的客户限制在一個單一的版本是坦率地説,侮辱和壞的業務。而不是 hard-coding 一個 drop-in 插件,只是讓您的主題播放很好提供的鈎子,並鼓勵用户安裝其他系統。如果您使用 WordPress 鈎子 (動作和過濾器) 而不是直接調用函數,那麼在穩定性方面您並不冒險。如果掛鈎發生更改,則該功能將被禁用,就像插件未安裝一樣。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。