激活或停用WordPress钩子

当插件被停用时,将调用“ deactivate_PLUGINNAME ”钩子。在此钩子的名称中, PLUGINNAME 将被替换为插件的名称。创建动作钩子。您需要激活 add_action () 函数才能在 WordPress 插件中添加动作钩子。

激活或停用Wordpress钩子

激活和停用挂钩提供了在插件激活或停用时执行操作的方法。

激活后,插件可以运行例程来添加重写规则、添加自定义数据库表或设置默认选项值。

在停用时,插件可以运行例程来删除临时数据,例如缓存和临时文件和目录。

停用钩子有时会与卸载钩子混淆。卸载钩子最适合永久删除所有数据,例如删除插件选项和自定义表等。

激活

要设置激活钩子,请使用register_activation_hook() 函数:

register_activation_hook(

	__FILE__,

	'pluginprefix_function_to_run'

);

停用

要设置停用钩子,请使用register_deactivation_hook() 函数:

register_deactivation_hook(

__FILE__,

'pluginprefix_function_to_run'

);

每个函数中的第一个参数都指向你的主插件文件,也就是你放置插件头注释的文件。通常这两个函数会在主插件文件中触发;但是,如果函数被放置在其他文件中,则必须更新第一个参数以正确指向主插件文件。

例子

激活钩子最常见的用途之一是在插件注册自定义帖子类型时刷新 WordPress 永久链接。这样可以避免令人讨厌的 404 错误。

让我们看一个如何做到这一点的例子:

/**

* Register the "book" custom post type

*/

function pluginprefix_setup_post_type() {

 register_post_type( 'book', ['public' => true ] ); 

}

add_action( 'init', 'pluginprefix_setup_post_type' );


/**

* Activate the plugin.

*/

function pluginprefix_activate() {

 // Trigger our function that registers the custom post type plugin.

 pluginprefix_setup_post_type(); 

 // Clear the permalinks after the post type has been registered.

 flush_rewrite_rules(); 

}

register_activation_hook( __FILE__, 'pluginprefix_activate' );

如果您不熟悉注册自定义帖子类型,不用担心——稍后会讲到。使用这个例子只是因为它很常见。

使用上面的示例,以下是如何逆转此过程并停用插件:

/**

* Deactivation hook.

*/

function pluginprefix_deactivate() {

 // Unregister the post type, so the rules are no longer in memory.

 unregister_post_type( 'book' );

 // Clear the permalinks to remove our post type's rules from the database.

 flush_rewrite_rules();

}

register_deactivation_hook( __FILE__, 'pluginprefix_deactivate' );

有关激活和停用挂钩的更多信息,请参阅以下一些优秀资源:

WordPress 函数参考中的register_activation_hook() 。

WordPress 函数参考中的register_deactivation_hook() 。

顶部