ВНИМАНИЕ: Запись на курсы по HTML, CSS, JavaScript, PHP, Python, React, Vue, Laravel и другим фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
13 of 21 menu
Вступайте в телеграмм-канал сайта code.mu: новинки, статьи, интервью, задачи, бесплатные курсы и тренинги. Жми для вступления:)

Таблица 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),
    которая связывает переводы записей