Wordpress создание своей таблицы

188
03 апреля 2022, 07:40

Кто не будь знает по какой причине не работает конструкция

CREATE TABLE $wpdb->payment_info

при создание новой таблицы? Такой вариант

CREATE TABLE $wpdb->get_blog_prefix() . 'payment_info'

не устраивает по той причине что потом нет возможности в запросе обратится через конструкцию

SELECT * FROM $wpdb->payment_info
Answer 1

Используйте dbDelta. Пример:

global $wpdb;
require_once ABSPATH . 'wp-admin/includes/upgrade.php';
$table_name = $wpdb->get_blog_prefix() . 'test_table';
$charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset} COLLATE {$wpdb->collate}";
$sql = "CREATE TABLE {$table_name} (
    id  bigint(20) unsigned NOT NULL auto_increment,
    address varchar(255) NOT NULL default '',
    alert varchar(20) NOT NULL default '',
    meta longtext NOT NULL default '',
    PRIMARY KEY  (id),
    KEY alert (alert)
)
{$charset_collate};";
dbDelta($sql);

Если вы хотите добавить свою таблицу в свойства объекта:

add_action( 'init', 'register_my_table' );
function register_my_table() {
    global $wpdb;
    $wpdb->payment_info = $wpdb->get_blog_prefix() . 'my_table_name';
}

Но лучше так не делать т.к. динамическое объявление свойсв объекта считается дурным тоном. Вместо этого если вы используете в своем коде классы создайте в нем свойсво, которое будете использовать, либо же константу.

READ ALSO
Обновление UI JavaFX во время выполнения

Обновление UI JavaFX во время выполнения

Есть LabelЯ хочу получить следующий алгоритм:

233
ViewPager + fragment stack

ViewPager + fragment stack

Проблема: мне нужно из фрагмента C вернуться на AКогда я это делаю, то фрагмент A инициализируется(все методы жизненого цикла отрабатывают),...

135
Найти последовательность букв в строке java

Найти последовательность букв в строке java

Задание: нужно проверить, содержится ли в первой строке вторая строка и вывести "Содержится" или "Не содержится"Использовать стандартные...

250
Хочу учиться Android разработке

Хочу учиться Android разработке

Собираюсь делать это через Intellij IDEA (тк

83