2009-10-05 231 views

回答

7

基本上,它維護一個叫做$wp_filter的全局變量來保存相關數據。插件可以使用add_filter()等功能來註冊。

在各個點(鉤點),wordpress檢查$wp_filter以查看是否有過濾器可以運行。

弄明白最簡單的方法是看一看wp-includes/plugin.php,研究那裏的代碼(或掛接一個調試器,通過它一步,或設置firePHP並定期傾倒的東西了)

我沒有專家,但我很好奇,所以我偷看了一下。如果我真的想知道更多,我會按照我的建議去做。

+0

哦,真棒。謝謝 – wnoveno 2009-10-05 06:32:10

+0

只需要注意,$ wp_filters的格式已經改變了幾次(並且變量名也有),所以你應該總是使用API​​函數。 – 2009-10-05 07:00:37

0

如果你有任何類似.net等事件驅動編程的經驗。你必須知道事件。把這些鉤子當作事件來考慮......一個插件記錄它想要啓動一個函數的事件,事件對象會記住..然後當這個事件從WP中的某個地方被觸發時,它將通過該數組找到它需要爲這個特定事件調用的函數。