首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我在WP中的register_uninstall_hook函数不删除表

为什么我在WP中的register_uninstall_hook函数不删除表
EN

Stack Overflow用户
提问于 2019-12-23 00:39:40
回答 1查看 118关注 0票数 0

我在我的可湿性粉剂插件中有以下代码:

代码语言:javascript
运行
复制
if (class_exists('mypluginname')) {
    $mypluginname = new mypluginname;
    register_activation_hook( __FILE__, array($mypluginname, 'activation'));
    register_uninstall_hook( __FILE__, array($mypluginname, 'uninstall'));
}

我在课堂上有这个函数:

代码语言:javascript
运行
复制
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");

}

如果我卸载我的插件,DB中的表不会被删除。为什么?

EN

回答 1

Stack Overflow用户

发布于 2019-12-23 04:06:02

您的类方法"uninstall“必须是静态类方法!https://developer.wordpress.org/reference/functions/register_uninstall_hook/

像这样试试吧!?

代码语言:javascript
运行
复制
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' );
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59446119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档