問題描述
我正在研究一個插件,當用户通過不同的插件執行某些操作時,理想情況下可以做到這一點。
我可以在這些插件中添加自定義鈎子,但是當我想要分發我的插件時,顯然這不太適用。有沒有一個很好的方法來添加鈎子給別人的插件從我自己的插件?是唯一真正的解決方案,要求作者包括自定義鈎子,以便其他開發人員可以建立他們的工作?
示例:當有人轉發文章時,我想在我的插件中做一些事情。如果有一個自定義的鈎子,無論什麼流行的轉發插件,我可以掛鈎和消除,這將是偉大的。沒有,所以我可以修改他們的插件來包含它,但這隻適用於我的副本,我不想嘗試重新分配。
我們只需要嘗試和更好的插件開發人員,以便我們可以一起玩好嗎?
最佳解決方案
@Ryan Elkins:
我想這個答案取決於每個 use-case 是如何導入的。在某些情況下,您將需要 quick-and-dirty,在其他情況下,它可能是更重要的 use-case 。以下是兩件事:
在 WordPress 核心中查找替代掛鈎
如果有些時候有些東西很髒,有些時候你可以使用核心的其他下游掛鈎來修改你需要的內容,或者通過使用 ob_start() /ob_end_clean()(參見 @Todd Perkins answer 到 「Dealing with large HTML output via plugin code」) 代碼示例來修改上游和下游的鈎子。)
為了追蹤你可以使用的掛鈎,請查看我昨天發佈的 Instrument Hooks plugin,以幫助您找到可以使用的掛鈎。
將您希望的掛鈎提交到插件開發人員
如果您的 use-case 對您或社區更重要,我建議您繼續添加插件所需的掛鈎。然後測試很好,以確保它真正解決您的 use-case 之後,您可以提交一個補丁到插件開發人員,希望他或她將應用它。這樣,您可以通過給他們測試代碼儘可能簡單,並且自己通過 use-case 進行工作,以確保它真正符合您的需要。我不能告訴你,我認為我需要一個特定的鈎子才能找到,試圖實現一個我需要一個鈎子,但是一個不同於我第一次設想的頻率。
如果你不熟悉在這裏創建一個補丁是一個很好的文章,修補 WordPress 核心,其中大多數適用於修補插件,對於那些不希望顯而易見的做什麼:
希望這可以幫助?
附:有一件事我覺得有點失望,你的問題的地址是僅為 end-users 設計的插件的百分比,即沒有自己的鈎子。想象一下,如果 WordPress 是像大多數插件一樣設計?這將是不靈活和非常利基的解決方案。
如果 WordPress 有能力使用其他插件所依賴的 auto-install 插件,也可能會有所不同因為我通常必須從頭開始寫出很多我需要的功能,因為客户端需要某種方式和可用的插件,而 90%的用户不允許我更新剩餘的 10%的靈活性。
我真的希望那些領導 WordPress 社區的人能夠確定一種方法,以確保插件能夠獲得最佳實踐獎勵 (例如為其他開發者添加鈎子),就像在 StackExchange 網站上獲得的好回答一樣。
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。