web-dev-qa-db-ja.com

wordpressデータベースにテーブルを追加する

次のスクリプトを使用して、テーブルをwordpressデータベースに追加しますが、何も起こりません。何が悪いのかわかりません。

何かアドバイスをいただければ幸いです。

     function vw_postcode_checker_create_db ()
    {
        global $wpdb;
      global $tableprefix;

        // Create Table Name
        $table_name =$tableprefix . "vw_postcode_checker";

        // Write Query to add table to database
        if ($wpdb->get_var('SHOW TABLES LIKE'.$table_name) !=$table_name)
        {
                $sql = "CREATE TABLE " . $table_name . " (
                    id INTEGER(10) UNSIGNED AUTO_INCREMENT,
                    postcode  varchar(250)   NOT NULL,
                    area varchar(250)   NOT NULL
                    PRIMARY KEY (id)
                )";
    // Execute Query to Create Table
    require_once (ABSPATH . 'wp-admin/includes/upgrade.php');
                dbDelta($sql);
                add_option ('vw_postcode_checker_version', '0.1');
        }
        }
// Register table function
register_activation_hook (__FILE__,'vw_postcode_checker_create_db');
1

試してください:

_function vw_postcode_checker_create_db () {
    global $wpdb;

    // Create Table Name
    $table_name = $wpdb->prefix . "vw_postcode_checker";

    // Write Query to add table to database
    if ( $wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
        $sql = "CREATE TABLE $table_name (
            id INTEGER(10) UNSIGNED AUTO_INCREMENT,
            postcode  varchar(250) DEFAULT ''  NOT NULL,
            area varchar(250) DEFAULT ''  NOT NULL,
            PRIMARY KEY (id)
         );";
        // Execute Query to Create Table
        require_once (ABSPATH . 'wp-admin/includes/upgrade.php');
        dbDelta($sql);
        add_option ('vw_postcode_checker_version', '0.1');
    }
}
// Register table function
register_activation_hook (__FILE__,'vw_postcode_checker_create_db');
_

_$wpdb->prefix_の使用とPRIMARY KEY (id)の後のクロージャーに注意してください

https://codex.wordpress.org/Creating_Tables_with_Plugins

2
shanebp