关于注册激活挂钩的问题

时间:2016-02-22 作者:MartinJJ

看看wp codex,它说:

The register_activation_hook function registers a plugin function to be run when the plugin is activated.

我发现这并不完全正确,例如,我可以激活一个插件,在WP注册表中添加额外字段(使用codex中的添加额外字段示例),该插件不需要register\\u activation\\u hook功能(也不需要register\\u deactivation\\u hook)。

codex没有告诉你什么时候不使用register\\u activation\\u钩子,现在我猜只有在包含用于安装或创建插件激活db表的文件时才需要该钩子,如果对WP和正确使用register/deregister钩子有更多了解的人能够澄清其正确用法,我将不胜感激。

当做

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

这个register_activation_hook() 实际上只是一个包装add_action(\'activate_\' . $file, $function); 仅当plugin is activated.

此操作/功能用于任何插件激活时只应执行一次的操作,包括以下内容

向分类法添加自定义术语

创建新的数据库表或行

运行一次性数据库进程,可能包括更新某些表、列或行

刷新重写规则

相反,register_deactivation_hook() 仅在插件停用时执行。这个钩子/函数/操作是为了在插件之后运行要清理的进程,其中可能包括

还原已更改的db表、行或列

删除插件添加的自定义db表

删除插件添加的任何不再需要的自定义选项

相关推荐

Can I make plugins required?

我正在开发自己的Wordpress主题,将用于多个客户端。它有一个主题选项页面,这样我每次都可以轻松自定义网站,但我也会在我制作的每个网站上使用一些插件(如SEO插件、安全性等)。有没有办法让它们成为“必需的”,这样我就可以得到这些插件的列表,这样当我在新网站上安装主题时就不必在插件目录中找到它们了?