При создании таблицы в БД WordPress сайт выдает 500 ошибок - PullRequest
0 голосов
/ 08 июня 2018

Я учусь создавать плагин для WordPress.Я хочу создать таблицу в БД WordPress.Но после написания кода для разработки таблицы сайта отображается ошибка 500.Я пытался создать таблицу с использованием MySQL Workbench, но затем сайт не работает.Я пытаюсь сделать это в другой функции и инициализировать это во время активации плагина, но это не сработало.Вот код для создания таблицы:

function my_plugin_start(){

    $status_url = get_option('');
    preg_match('/^http(s)?\/\/[^\/]+\/(.*)$/i', $status_url, $matches);

    $real_url = $_SERVER['REQUEST_URI'];
    preg_match('/^\/(.+)(\?.+)$/i', $real_url, $uri_matches);

    if ($uri_matches[1] == $matches[2]){
        if(isset($_GET['dcode'])){
            start_download();
        }
        else {
            interkassa_process();
        }
    }

// The code for creating a table

    global $wpdb;

    $table_name = $wpdb->prefix . "my_product_base";

    if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
        $sql = "CREATE TABLE " . $table_name . " (
      UNIQUE KEY id (id) AUTO_INCREMENT,
      name VARCHAR(255) NOT NULL,
      cost VARCHAR(255) NOT NULL,
      url VARCHAR(255) NOT NULL

    );";

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

    }
}

add_action('admin_menu', 'my_plugin_add_admin_menu');
add_action('init', 'my_plugin_start');

1 Ответ

0 голосов
/ 08 июня 2018

Попробуйте этот модифицированный код

function my_plugin_start(){

    $status_url = get_option('');
    preg_match('/^http(s)?\/\/[^\/]+\/(.*)$/i', $status_url, $matches);

    $real_url = $_SERVER['REQUEST_URI'];
    preg_match('/^\/(.+)(\?.+)$/i', $real_url, $uri_matches);

    if ($uri_matches[1] == $matches[2]){
        if(isset($_GET['dcode'])){
            start_download();
        }
        else {
            interkassa_process();
        }
    }

// The code for creating a table

    global $wpdb;

    $table_name = $wpdb->prefix . "my_product_base";

    if($wpdb->get_var("SHOW TABLES LIKE '$table_name'") != $table_name) {
        $sql = "CREATE TABLE " . $table_name . " (
      UNIQUE KEY id (id) AUTO_INCREMENT,
      name VARCHAR(255) NOT NULL,
      cost VARCHAR(255) NOT NULL,
      url VARCHAR(255) NOT NULL

    );";

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

    }
}

add_action('admin_menu', 'my_plugin_add_admin_menu');
add_action('init', 'my_plugin_start');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...