首先,我知道这个问题被问了无数次,但是我觉得我已经遍历了以前的每一篇文章,并尝试了我遇到的所有事情,但都没有成功,包括WordPress Codex。我花了12个小时以上的时间来尝试在Wordpress数据库中创建自定义数据库表,但没有任何效果。该插件声称已被激活,但是表格从未出现在PhpMyAdmin中。
我曾经考虑过只是改变课程并使用自定义帖子类型,但是我的整个网站都基于数据库,因此我想尽一切可能确保可靠的性能。我一直在尝试避免使用自定义帖子类型,因为我真的不希望每个查询都必须搜索默认WordPress表中已经存在的所有其他内容。
我包括了我实际上想做的代码,只是为了大图,但我什至试图创建一个仅包含3个字段的超简单通用表,但仍然无济于事。
在将调试设置为true的情况下,我看到的通知是关于使用未定义常量的通知,这是我在代码末尾的register_activation_hook中使用的函数名称。
非常感谢您的帮助!
<?php
/*
Plugin Name: Kati’s Custom School Table
Description: This plugin will create a custom table to store user school based data in a more specialized way.
Author: KatiKati
Version: 1.0
*/
function customtables_activate()
{
global $wpdb;
$table_name = $wpdb->prefix . 'school';
$sql = "CREATE TABLE $table_name (
fk_ggid int(6) NOT NULL,
/* is_in fields contain the current school enrollment information of the child account
*/
is_in_school VARCHAR(100) NULL,
is_in_teacher VARCHAR(100) NULL,
is_in_kinder TINYINT(1) default 0,
is_in_grade1 TINYINT(1) default 0,
is_in_grade2 TINYINT(1) default 0,
is_in_grade3 TINYINT(1) default 0,
is_in_grade4 TINYINT(1) default 0,
is_in_grade5 TINYINT(1) default 0,
is_in_grade6 TINYINT(1) default 0,
is_in_grade7 TINYINT(1) default 0,
is_in_grade8 TINYINT(1) default 0,
is_in_grade9 TINYINT(1) default 0,
is_in_grade10 TINYINT(1) default 0,
is_in_grade11 TINYINT(1) default 0,
is_in_grade12 TINYINT(1) default 0,
PRIMARY KEY (fk_ggid)
);";
require_once(ABSPATH . ‘wp-admin/includes/upgrade.php’);
dbDelta($sql);
}
register_activation_hook(__FILE__, ‘customtables_activate’);