我試圖確定爲什麼一些WordPress插件使用register_activation_hook(__FILE__, 'activate_plugin')
,而其他人使用行動add_action('init', 'activate_plugin');
register_activation_hook VS ADD_ACTION( '初始化')
0
A
回答
2
有幾個原因:
- register_activation_hook是WP2 +,ADD_ACTION可用在此之前使用
- register_activation_hook允許開發者指定函數所在的文件(雖然這似乎很少使用)
- 對於我來說,register_activation_hook是「清潔」
所以我敢打賭,使用ADD_ACTION日期從2版或開發者之前的插件不知道register_activation_hook的
11
兩個做不同的事情,register_activation_hook
用於註冊一個函數將在插件激活時(在Wordpress插件管理頁面上)調用一次,而掛鉤到init
動作的函數將在每個請求中調用。
因此,通常的例子是使用激活函數來創建數據庫表,或者爲插件設置默認選項,然後使用動作函數加載翻譯後的字符串。
0
將「activate_plugin」函數掛接到init看起來要麼是很久以前完成的代碼,要麼是不瞭解register_activation_hook的人。第三種可能性是,儘管函數名稱是他們希望它運行,無論是否調用register_activation_hook。
例如,當更新插件時,該插件被停用並重新激活,但未激活該激活掛接。 (如果插件是通過FTP或類似的方式更新的話,肯定不會被調用)。因此,如果我在激活或更新時需要運行某些代碼,我可能會將其掛接到init。
相關問題
- 1. 渴望初始化VS延遲初始化使用情況
- 2. WordPress - add_filter vs apply_filters vs add_action vs do_action
- 3. 何時使用add_action vs add_filter?
- 4. 聯盟零初始化鏗鏘VS GCC
- 5. 指針vs零初始化指針
- 6. 靜塊VS靜態成員初始化
- 7. JDBC PreparedStatements vs Objects - 初始化的位置
- 8. C++中的賦值vs初始化
- 9. C#變量初始化VS分配
- 10. 實例初始化VS私有成員
- 11. UIApplicationWillEnterForegroundNotification vs viewWillAppear - 初始化模式?
- 12. 的NSNumber numberWithFloat VS初始化或Alloc
- 13. 懶VS初始化爲迅速
- 14. 初始化,初始化與參數和便利初始化
- 15. java中的初始化初始化
- 16. 初始化數組時初始化System.AccessViolationException
- 17. 初始化UITableViewCell初始化問題initwithStyle
- 18. 初始化在初始化列表
- 19. 直接初始化與值初始化
- 20. C++ - 初始化與骨料初始化
- 21. log4net初始化
- 22. 初始化struct
- 23. 初始化ISkypeClientPtr
- 24. C++初始化
- 25. 類初始化
- 26. 初始化data.frames()
- 27. 初始化值
- 28. AutoMapper初始化
- 29. 初始化
- 30. 初始化NSMutableArray
謝謝亞當。我非常感謝在這裏,你幾乎總能得到一個簡潔明瞭的解釋。並迅速:) – 2010-03-10 14:48:50
根據@nacin(WordPress的首席開發人員),你不應該使用激活鉤子(特別是在多站點上)。您應該這樣做: 「使用admin_init上的升級例程,並根據存儲的選項處理每個站點會更好。」 來源:https://core.trac.wordpress。 org/ticket/14170#comment:68 – Sam 2017-07-20 11:10:10
有趣的,謝謝@Sam。這個討論是關於網絡(即多站點)安裝的具體討論,當我寫這個(我們有WPMU)時,我不認爲這是一個'事情' - 我會進一步閱讀,看看我是否可以更新我的答案。 – 2017-07-20 19:34:37