問題描述
我正在研究一個外掛,當使用者透過不同的外掛執行某些操作時,理想情況下可以做到這一點。
我可以在這些外掛中新增自定義鉤子,但是當我想要分發我的外掛時,顯然這不太適用。有沒有一個很好的方法來新增鉤子給別人的外掛從我自己的外掛?是唯一真正的解決方案,要求作者包括自定義鉤子,以便其他開發人員可以建立他們的工作?
示例:當有人轉發文章時,我想在我的外掛中做一些事情。如果有一個自定義的鉤子,無論什麼流行的轉發外掛,我可以掛鉤和消除,這將是偉大的。沒有,所以我可以修改他們的外掛來包含它,但這隻適用於我的副本,我不想嘗試重新分配。
我們只需要嘗試和更好的外掛開發人員,以便我們可以一起玩好嗎?
最佳解決方案
@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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。