Таблица wp_languages
Таблица wp_languages
не является частью ядра WordPress и создается сторонними плагинами для реализации мультиязычности, такими как WPML, Polylang или qTranslate-X. Она служит справочником для хранения метаданных о языках, доступных на сайте.
Поля
Поле | Тип данных | Описание |
---|---|---|
id |
bigint(20) unsigned |
Уникальный числовой идентификатор языка (первичный ключ с автоинкрементом). |
language_code |
varchar(12) |
Код языка по стандарту ISO 639-1 (например, en , ru , de ). Является уникальным идентификатором.
|
site_id |
bigint(20) |
Идентификатор сайта в мультисайтовой установке WordPress (Multisite). Для обычных сайтов обычно равен 1 .
|
name |
varchar(64) |
Название языка на английском (например, English , Russian ).
|
native_name |
varchar(64) |
Название языка на самом этом языке (например, English , Русский ).
|
is_rtl |
tinyint(1) |
Флаг, указывающий на направление письма. 1 - язык с написанием справа налево (RTL), например, арабский. 0 - язык с написанием слева направо (LTR).
|
active |
tinyint(1) |
Флаг, указывающий, активен ли язык на сайте. Неактивные языки могут быть загружены в систему, но не отображаются в языковом switcher'е. |
default_locale |
varchar(32) |
Локаль языка (например, en_US , ru_RU ). Используется для подключения правильных .mo и .po файлов перевода.
|
tag |
varchar(32) |
Языковой тег по стандарту IETF BCP 47 (например, en-US , ru ). Может использоваться для атрибутов lang в HTML.
|
country |
varchar(16) |
Код страны, с которой ассоциирован данный вариант языка (например, для испанского может быть es , mx и т.д.). Опциональное поле.
|
updated_at |
datetime |
Дата и время последнего обновления записи о языке. |
Как это работает
При активации мультиязычного плагина (например, Polylang) часто создается эта таблица. Плагин добавляет в нее языки, которые администратор выбирает в настройках (/wp-admin/admin.php?page=mlang
для Polylang). Каждая запись в таблице представляет один язык, доступный на сайте.
Плагины используют эту таблицу как справочник для отображения языковых switcher'ов, определения локали для загрузки переводов, применения RTL-стилей и связи записей, страниц и таксономий на разных языках через отдельные таблицы связей (например, wp_icl_translations
для WPML).
Поле language_code
является ключевым и используется в других таблицах плагина (например, wp_termmeta
, wp_postmeta
или в специализированных таблицах вроде wp_icl_string_translations
) для указания языка конкретного контента.
Важно: структура и наличие полей могут незначительно отличаться в зависимости от плагина, который создал таблицу.
Пример SQL-запроса
Получить список всех активных языков на сайте можно запросом:
SELECT language_code, name, native_name, is_rtl
FROM wp_languages
WHERE active = 1
ORDER BY id;
Найти язык по его коду:
SELECT *
FROM wp_languages
WHERE language_code = 'ru';
Смотрите также
-
таблицу
wp_posts
,
в которой хранится основной контент -
таблицу
wp_options
,
где плагины часто хранят основные настройки языков -
таблицу
wp_icl_translations
(для WPML),
которая связывает переводы записей