Php 为什么我在WP中的register_uninstall_hook中的函数不';不要删除表格
我的WP插件中有以下代码:Php 为什么我在WP中的register_uninstall_hook中的函数不';不要删除表格,php,wordpress,Php,Wordpress,我的WP插件中有以下代码: if (class_exists('mypluginname')) { $mypluginname = new mypluginname; register_activation_hook( __FILE__, array($mypluginname, 'activation')); register_uninstall_hook( __FILE__, array($mypluginname, 'uninstall')); } 我在课堂上有一
if (class_exists('mypluginname')) {
$mypluginname = new mypluginname;
register_activation_hook( __FILE__, array($mypluginname, 'activation'));
register_uninstall_hook( __FILE__, array($mypluginname, 'uninstall'));
}
我在课堂上有一个函数:
function uninstall() {
if (!defined('WP_UNINSTALL_PLUGIN')) {
die;
}
global $wpdb;
$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}my_x");
$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}my_y");
$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}my_z");
}
如果卸载插件,数据库中的表不会被删除。为什么?您的类方法“卸载”必须是静态类方法
像这样试试
class mypluginname{
static function uninstall() {
if (!defined('WP_UNINSTALL_PLUGIN')) {
die;
}
global $wpdb;
$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}my_x");
$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}my_y");
$wpdb->query("DROP TABLE IF EXISTS {$wpdb->prefix}my_z");
}
}
if (class_exists('mypluginname')) {
register_uninstall_hook( __FILE__, 'mypluginname::uninstall' );
}