Создание таблиц по активации плагинов WordPress (шаблон) - PullRequest
0 голосов
/ 08 октября 2018

Я пытаюсь создать таблицу, когда m плагин активирован.Я создал плагин с помощью здесь: http://wppb.me/

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

   register_activation_hook( __FILE__,array( 'Horse_Exchange_Activator', 'activate' )  );


class Horse_Exchange_Activator {



    /**

     * Short Description. (use period)

     *

     * Long Description.

     *

     * @since    1.0.0

     */



    public static function activate() {


    global $table_prefix, $wpdb;

    $tblname = 'winners_horses';
    $wp_track_table = $table_prefix . "$tblname ";

    #Check to see if the table exists already, if not, then create it

    if($wpdb->get_var( "show tables like '$wp_track_table'" ) != $wp_track_table) 
    {

        $sql = "CREATE TABLE `". $wp_track_table . "` ( ";
        $sql .= "  `id`  int(11)   NOT NULL auto_increment, ";
        $sql .= "  `horse`  varchar(255)   NOT NULL, ";
        $sql .= "  `event_name` varchar(255)   NOT NULL, "; 
        $sql .= "  `cloth` varchar(255)   NOT NULL, "; 
        $sql .= "  `posted` varchar(255)   NOT NULL, "; 
        $sql .= ") ENGINE=MyISAM DEFAULT CHARSET=latin1 ; ";
        require_once( ABSPATH . '/wp-admin/includes/upgrade.php' );
        dbDelta($sql);



    }



}

1 Ответ

0 голосов
/ 08 октября 2018

Ваша главная проблема - это состояние.пожалуйста, проверьте это очень тщательно.Вот решение.

<?php

/**
* Plugin Name: Test Plugin
*/


class Horse_Exchange_Activator {



    /**

     * Short Description. (use period)

     *

     * Long Description.

     *

     * @since    1.0.0

     */



    static function activate() {


        global $wpdb;
        $table_name = 'abctable';
        $charset_collate = $wpdb->get_charset_collate();

        $sql = "CREATE TABLE $table_name (
          id mediumint(9) NOT NULL AUTO_INCREMENT,
          time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
          name tinytext NOT NULL,
          text text NOT NULL,
          url varchar(55) DEFAULT '' NOT NULL,
          PRIMARY KEY  (id)
        ) $charset_collate;";

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



}

}


register_activation_hook( __FILE__,array( 'Horse_Exchange_Activator', 'activate' )  );
...