Во-первых, я знаю, что этот вопрос задавали бесчисленное количество раз, но я чувствую, что прошел каждый предыдущий пост и перепробовал все, с чем столкнулся, без какого-либо успеха, включая Кодекс WordPress. Я потратил 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’);