看看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钩子有更多了解的人能够澄清其正确用法,我将不胜感激。
当做
最合适的回答,由SO网友:Pieter Goosen 整理而成
这个register_activation_hook() 实际上只是一个包装add_action(\'activate_\' . $file, $function); 仅当plugin is activated.
此操作/功能用于任何插件激活时只应执行一次的操作,包括以下内容
向分类法添加自定义术语
创建新的数据库表或行
运行一次性数据库进程,可能包括更新某些表、列或行
刷新重写规则
相反,register_deactivation_hook() 仅在插件停用时执行。这个钩子/函数/操作是为了在插件之后运行要清理的进程,其中可能包括
还原已更改的db表、行或列
删除插件添加的自定义db表
删除插件添加的任何不再需要的自定义选项