我试图确定为什么一些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. 什么是ADD_ACTION(“初始化
- 2. 值初始化vs集合初始化
- 3. 初始化块vs构造函数vs变量初始化
- 4. 执行-init vs. +初始化
- 5. Java继承vs初始化
- 6. 值初始值vs Calloc vs手动初始化速度
- 7. VS2013缺省初始化VS值初始化
- 8. 弹簧log4j初始化vs自定义log4j初始化
- 9. 构造函数初始化vs获取集合初始化
- 10. 初始化的声明VS在构造函数初始化
- 11. 渴望初始化VS延迟初始化使用情况
- 12. 初始化列表Vs的静态常量初始化
- 13. WordPress - add_filter vs apply_filters vs add_action vs do_action
- 14. 的NSNumber numberWithFloat VS初始化或Alloc
- 15. C++中的赋值vs初始化
- 16. 红宝石自我。 vs @初始化
- 17. 联盟零初始化铿锵VS GCC
- 18. NSUserDefault,分配初始化VS标准Userdefault
- 19. 实例初始化VS私有成员
- 20. JDBC PreparedStatements vs Objects - 初始化的位置
- 21. 懒VS初始化为迅速
- 22. 依赖注入VS单,动初始化
- 23. C++静态初始化VS __attribute __((构造))
- 24. Swift vs ObjC初始化过程?
- 25. C#变量初始化VS分配
- 26. UIApplicationWillEnterForegroundNotification vs viewWillAppear - 初始化模式?
- 27. 指针vs零初始化指针
- 28. Minimalizate知名度VS避免初始化
- 29. 静块VS静态成员初始化
- 30. 类初始化 - 属性vs字段
谢谢亚当。我非常感谢在这里,你几乎总能得到一个简洁明了的解释。并迅速:) – 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