Wordpress插件删除并删除它';的数据库表


Wordpress plugin delete and delete it's database tables

我制作了一个插件,它使用一个数据库,其中的表创建如下:

register_activation_hook( __FILE__, 'plugin_install' );
function plugin_install() {
global $wpdb;
$table1 = $wpdb->prefix . 'table1';
            $charset_collate = '';
            if ( ! empty( $wpdb->charset ) ) {
                  $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset}";
                }
            if ( ! empty( $wpdb->collate ) ) {
                  $charset_collate .= " COLLATE {$wpdb->collate}";
                }
                $sql = "CREATE TABLE IF NOT EXISTS $table1 (
                    id mediumint(9) NOT NULL AUTO_INCREMENT,
                    some_data varchar(55) DEFAULT '' NOT NULL,
                    UNIQUE KEY id (id)
                ) $charset_collate;";
            require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
            dbDelta( $sql );
            }

当插件通过管理面板删除时,我不知道如何删除所有这些表。有人能帮忙吗?

在另一种方式上执行相同操作:register_uninstall_hook($file, $callback)

http://codex.wordpress.org/Function_Reference/register_uninstall_hook

例如:

register_uninstall_hook(__FILE__, 'plugin_uninstall');
function plugin_uninstall() {
    global $wpdb;
    $table1 = $wpdb->prefix . 'table1';
    $sql = "DROP TABLE " . $table1;
    dbDelta($sql);
}