Фильтр локали в WordPress
Введение
Фильтр локали позволяет изменить локаль вашего сайта (например, en_US для английского или ru_RU для русского). Эта информация извлекается функцией get_locale()
.
Использование
Чтобы изменить локаль, вам нужно добавить фильтр в вашу тему или плагин:
add_filter( 'locale', 'wp_kama_locale_filter' );
/**
* Функция для фильтра локали.
*
* @param string $locale ID локали.
*
* @return string
*/
function wp_kama_locale_filter( $locale ) {
// Здесь можно изменить локаль...
return $locale;
}
Параметры функции
$locale
(string): ID локали. Примеры:en_US
,ru_RU
.
Пример
Изменение языка локализации
В этом примере показано, как изменить язык локализации в WordPress на основе значения переменной, переданной в параметре запроса $_GET
:
add_filter( 'locale', 'set_my_locale' );
function set_my_locale( $lang ) {
if ( 'ru' == $_GET['language'] ) {
return 'ru_RU';
} else {
return $lang;
}
}
Этот код проверяет, если в URL запроса есть параметр language
, и если он равен ru
, то локаль изменится на ru_RU
. В противном случае возвращается оригинальная локаль.
Изменения в версии
- С версии 1.5.0: Фильтр был введен в систему.
Где используется фильтр в WordPress
Фильтр локали вызывается в функции get_locale()
, которая находится в файле wp-includes/l10n.php
:
return apply_filters( 'locale', $locale );
Также фильтр используется в классе переключателя локалей:
add_filter( 'locale', array( $this, 'filter_locale' ) );
Заключение
Фильтр локали — мощный инструмент для изменения языка вашего сайта WordPress. С его помощью вы можете адаптировать локаль в зависимости от различных условий. Это особенно полезно для многоязычных сайтов, где пользователи могут выбирать предпочитаемый язык.