Intereting Posts
Значки темы не видны на http://domain.com, работает на http: // ipaddress Как получить дату создания публикации? Почему страница входа в систему будет загружаться бесконечно? Настроить, какой tempalte использует страница с функцией? Пользовательский тип сообщения с загрузкой файла – нужно «установить как поле» вместо «отправить в редактор», Как отключить «вставить в сообщение» только при выборе Featured Image? Установите их для всех подмножеств категории Удалить rel = 'dns-prefetch' href = '// maps.google.com' из wp-head Как удалить доступ к панели управления из определенных ролей пользователей? Как проверить, существует ли мета-ключ сообщения в базе данных wordpress Использование jQuery для удаления данных, хранящихся в wp_options Пользовательские категории заказов в панели управления администратора Проблема в том, что все js-файлы находятся в определенном каталоге Если одна таксономия содержит тот же термин, что и другой, то отображается сообщение Создатель HTML-таблицы в метабоке для размещения темы сообщения

Шрифт базы данных WordPress / Сортировка

Есть ли простой способ получить кодировку и сопоставление таблиц БД в WordPress, не прибегая к SQL-запросам?

Solutions Collecting From Web of "Шрифт базы данных WordPress / Сортировка"

Есть $wpdb->charset и $wpdb->collate . Я не уверен, если или когда одно из этих значений может быть пустым, поэтому лучше подготовиться к пустым значениям …

Из моего класса DB:

 /** * Get table charset and collation. * * @since 2012.10.22 * @return string */ protected static function get_wp_charset_collate() { global $wpdb; $charset_collate = ''; if ( ! empty ( $wpdb->charset ) ) $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset"; if ( ! empty ( $wpdb->collate ) ) $charset_collate .= " COLLATE $wpdb->collate"; return $charset_collate; } 

Используется для создания таблицы следующим образом:

  global $wpdb; // encoding $charset_collate = self::get_wp_charset_collate(); $table = self::get_table_name(); // the user could have just deleted the plugin without running the clean up. $sql = "CREATE TABLE IF NOT EXISTS $table ( ID bigint unsigned NOT NULL auto_increment, event_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, event_group tinytext, event_title text, PRIMARY KEY (ID) ) $charset_collate;"; // make dbDelta() available require_once ABSPATH . 'wp-admin/includes/upgrade.php'; dbDelta( $sql ); 

Связано: Проблема с блоком charset UTF-7

Файл wp-admin/includes/upgrade.php включает wp-admin/includes/schema.php . Это вверху объявляется глобальным ( см. Источник ):

 // Declare these as global in case schema.php is included from a function. global $wpdb, $wp_queries, $charset_collate; ... $charset_collate = ''; if ( ! empty( $wpdb->charset ) ) $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset"; if ( ! empty( $wpdb->collate ) ) $charset_collate .= " COLLATE $wpdb->collate"; 

Поэтому вы можете следить за ответом @ Toscho и проверять $wpdb . Или, используя пример Toscho:

 global $wpdb, $charset_collate; require_once ABSPATH . 'wp-admin/includes/upgrade.php'; $sql = "CREATE TABLE $table ( ID bigint unsigned NOT NULL auto_increment, event_date timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, event_group tinytext, event_title text, PRIMARY KEY (ID) ) $charset_collate;"; dbDelta( $sql ); 

Обратите внимание, что IF NOT EXISTS не требуется, поскольку dbDelta() обрабатывает это .