Як створити таблицю в WordPress через functions.php: Повний гід по типам даних MySQL


Іноді стандартних можливостей 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 дуже вибаглива до оформлення SQL-запиту. Якщо ігнорувати ці правила, таблиця не створиться:

  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: Полный гид по типам данных

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *