尽管插件激活成功,但实际上并未创建Wordpress自定义数据库表

时间:2019-03-30 20:31:09

标签: php mysql wordpress

首先,我知道这个问题被问了无数次,但是我觉得我已经遍历了以前的每一篇文章,并尝试了我遇到的所有事情,但都没有成功,包括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’);

0 个答案:

没有答案