WordPress插件卸载停用方法

WordPress插件卸载停用方法,当您的插件从站点卸载时,可能需要进行一些清理。如果用户停用了插件,然后单击 WordPress 管理员中的删除链接,则认为该插件已卸载。当您的插件被卸载时,您需要清除任何插件选项和/或特定于插件的设置,和/或其他数据库实体(如表)。

经验不足的开发人员有时会错误地使用停用钩子来实现此目的。下表说明了停用和卸载之间的区别。

设想 停用钩子 卸载钩子
刷新缓存/临时文件 Yes No
刷新永久链接 Yes No
从 {$ wpdb ->prefix}_options中删除选项 No Yes
从wpdb中删除表 No Yes

在Wordpress网站后台选择插件,选移除的插件。点击“停用”。点击 WordPress 插件上的“停用”。点击“删除”即可卸载该插件。

方法1:register_uninstall_hook

要设置卸载钩子,请使用register_uninstall_hook() 函数:

register_uninstall_hook(

 __FILE__,

 'pluginprefix_function_to_run'

);

方法二:uninstall.php

要使用此方法,您需要在插件的根文件夹中创建一个uninstall.php文件。当用户删除插件时,此文件会自动运行。

例如:/plugin-name/uninstall.php

在执行任何操作之前,务必检查常量是否输入WP_UNINSTALL_PLUGINuninstall.php这可以防止直接访问。

该常量将由 WordPress 在调用期间定义uninstall.php

当通过register_uninstall_hook()执行卸载时,该常量未定义。

以下是删除选项条目和删除数据库表的示例:

// if uninstall.php is not called by WordPress, die

if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {

die;

}

$option_name = 'wporg_option';

delete_option( $option_name );

// for site options in Multisite

delete_site_option( $option_name );

// drop a custom database table

global $wpdb;

$wpdb->query( "DROP TABLE IF EXISTS {$wpdb->prefix}mytable" );

在多站点中,循环遍历所有博客以删除选项可能会耗费大量资源。

顶部