dongxu1875 2015-03-20 13:45
浏览 26
已采纳

如何清理使用wordpress的开关主题创建的自定义表?

I am creating a custom table in wordpress, while switching the theme from A to B, in the admin panel.

add_action('after_switch_theme', 'manage_student_reports');

function manage_student_reports() {
    $sql = "CREATE TABLE IF NOT EXISTS `wp_student_reports` (
     `report_id` int(20) NOT NULL AUTO_INCREMENT,
     `student_name` varchar(50) NOT NULL,
     `department` varchar(50) DEFAULT NULL,
     `percentage` tinyint(4) DEFAULT '0',
     PRIMARY KEY (`report_id`)
    );";

    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);
}

But when i switch back the theme from B to A (or something else), the table still exists in the wordpress database. Is there a way to drop it ?

  • 写回答

1条回答 默认 最新

  • douhuike3199 2015-03-20 14:36
    关注
    1. dbDelta() function does not remove the fields or tables, only adds and updates.
    2. after_switch_theme hook runs once when current theme is activated. To do things when your theme is deactivated, use switch_theme hook.
    3. In switch_theme hook call a function which will trigger a check if table exists (to be safe and avoid possible errors) and then run a custom DROP TABLE sql.
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大