Как создать таблицу в WordPress через functions.php: Полный гид по типам данных


Иногда стандартных возможностей WordPress (постов и мета-полей) не хватает. В таких случаях создание собственной таблицы в базе данных — это самый эффективный путь.

1. Эталонный код для создания таблицы

Для создания таблицы мы используем функцию dbDelta. Она умная: если таблица уже существует, она не создаст её заново, а лишь обновит структуру (если вы добавите новые колонки).

Добавьте этот код в свой functions.php:

function create_custom_table() {
    global $wpdb;

    // Имя таблицы с учетом префикса (например, wp_custom_table)
    $table_name = $wpdb->prefix . 'custom_table'; 

    // Получаем кодировку сайта (обычно utf8mb4)
    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE $table_name (
        id INT NOT NULL AUTO_INCREMENT,
        column_name1 VARCHAR(255) NOT NULL,
        column_name2 TEXT NOT NULL,
        column_name3 INT DEFAULT 0,
        PRIMARY KEY (id)
    ) $charset_collate;";

    // Подключаем файл для работы с dbDelta
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    dbDelta($sql);
}

// Вызываем функцию при инициализации или активации темы
add_action('after_setup_theme', 'create_custom_table');

2. Основные типы данных MySQL

Чтобы ваша таблица работала быстро и занимала мало места, важно правильно выбрать тип данных для каждой колонки.

Числовые типы

Тип Описание Когда использовать
INT Целое число (до 4 млрд). ID, количество товаров, счетчики.
TINYINT Очень маленькое число (-128 до 127). Статусы (0 или 1), настройки «вкл/выкл».
DECIMAL Точное число с плавающей точкой. Деньги и цены. Например, DECIMAL(10,2).

Строковые типы

Тип Описание Когда использовать
VARCHAR(N) Строка переменной длины (до N символов). Заголовки, email, имена (обычно 255).
TEXT Длинный текст (до 65 КБ). Описания, комментарии, JSON-данные.
LONGTEXT Очень длинный текст (до 4 ГБ). Логи или огромные статьи.

Дата и время

Тип Описание Когда использовать
DATETIME Дата и время в формате YYYY-MM-DD HH:MM:SS. Дата создания заказа или регистрации.
TIMESTAMP Хранит время в секундах от 1970 года. Автоматическая фиксация времени изменения записи.

3. Важные правила синтаксиса dbDelta





Функция dbDelta — очень «капризная». Если проигнорировать эти правила, таблица просто не создастся:

  1. Два пробела: Между словами PRIMARY KEY и определением ключа (id) должно быть строго два пробела.

  2. Заглавные буквы: Все команды SQL (CREATE TABLE, NOT NULL, INT) лучше писать капсом.

  3. Длина VARCHAR: Вы обязаны указывать длину для VARCHAR, например VARCHAR(255).

Как проверить результат?

После сохранения functions.php, обновите любую страницу вашего сайта. Затем зайдите в phpMyAdmin. В списке таблиц вашей базы данных должна появиться новая строка: wp_custom_table.

Как создать таблицу в WordPress через functions.php: Полный гид по типам данных

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *