Как создать таблицу в базе данных WordPress с помощью плагина - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь создать плагин только для учебной цели, и я застрял в создании таблицы в базе данных wp.

Вот мой код:

register_activation_hook( __FILE__, 'DBP_tb_create' );

register_activation_hook( __FILE__, 'DBP_install_data' );

function DBP_tb_create() {

global $wpdb;

//step1

$DBP_tb_name = $wpdb->prefix .'dbp_tb_login'; 

//step2

$charset_collate = $wpdb->get_charset_collate();

$DBP_query = "CREATE TABLE $DBP_tb_name(id int(10) NOT NULL AUTO_INCREMENT,
username varchar(255) DEFAULT '',age int(100) DEFAULT '',address varchar(255) DEFAULT'',PRIMARY KEY  (id)) $charset_collate;";

//step3

require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $DBP_query );

функция DBP_install_data (){global $ wpdb;

$welcome_name = 'Mr. WordPress';
$welcome_text = 'Congratulations, you just completed the installation!';

$table_name = $wpdb->prefix . 'liveshoutbox';

$wpdb->insert(
    $table_name,
    array(
        'time' => current_time( 'mysql' ),
        'name' => $welcome_name,
        'text' => $welcome_text,
    )
);
}

1 Ответ

1 голос
/ 19 марта 2019

Это может помочь вам:

<?php

register_activation_hook( __FILE__, 'install' );

global $plugin_name_db_version;
$plugin_name_db_version = '1.0.0';

function install(){
    global $wpdb;
    global $plugin_name_db_version;
    $charset_collate = $wpdb->get_charset_collate();
    $sql="
    CREATE TABLE IF NOT EXISTS `".$wpdb->prefix."plugin_name`
    (
        id bigint(20) NOT NULL auto_increment,
        ...
    );";
    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta($sql);

    add_option( 'plugin_name_db_version', $plugin_name_db_version );
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...