如何清除使用 wordpress 切换主题创建的自定义 table?
How to clean custom table created with the switch theme of wordpress?
我正在 wordpress 中创建自定义 table,同时在管理面板中将主题从 A 切换到 B。
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);
}
但是当我将主题从 B 切换回 A(或其他)时,table 仍然存在于 wordpress 数据库中。有没有办法放下它?
dbDelta()
函数不会删除字段或 tables,只会添加和更新。
after_switch_theme
在当前主题激活时挂钩 运行s 一次。要在主题停用时执行操作,请使用 switch_theme
挂钩。
- 在
switch_theme
钩子中调用一个函数,该函数将触发检查 table 是否存在(为了安全并避免可能的错误),然后 运行 自定义 DROP TABLE
sql.
我正在 wordpress 中创建自定义 table,同时在管理面板中将主题从 A 切换到 B。
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);
}
但是当我将主题从 B 切换回 A(或其他)时,table 仍然存在于 wordpress 数据库中。有没有办法放下它?
dbDelta()
函数不会删除字段或 tables,只会添加和更新。after_switch_theme
在当前主题激活时挂钩 运行s 一次。要在主题停用时执行操作,请使用switch_theme
挂钩。- 在
switch_theme
钩子中调用一个函数,该函数将触发检查 table 是否存在(为了安全并避免可能的错误),然后 运行 自定义DROP TABLE
sql.