WordPress 4: WPLANG устарела. Как изменить язык программно?

Поскольку WPLANG устарела в WordPress 4, что вы используете для установки выбранного пользователем языка?
В версиях 3.x.x я использовал define (‘WPLANG’, $ lang) установить язык, а затем на страницах можно получить его с помощью get_locale (). Мне нужно использовать этот подход, чтобы дифференцировать контент для разных языков. Я знаю, что можно изменить язык в Настройки-> Общие, но мне нужно сделать это программно.

Спасибо

3

Решение

Я нашел решение, которое работает для меня. Вместо того, чтобы использовать define (‘WPLANG’, $ _SESSION [‘WPLANG’]); я использую $ locale = $ _SESSION [‘WPLANG’]; .

2

Другие решения

В WordPress 4.0 определение WPLANG от wp-config.php как вы уже сказали, амортизируется. Он был заменен опцией под названием WPLANG хранится в таблице <TablePrefix>_options,

Вы могли бы использовать get_option() чтобы получить к нему доступ:

$my = get_option('WPLANG','en_US');

Более подробную информацию об изменении можно найти Вот.

1

Вместо манипулирования с глобальными переменными или константами можно использовать фильтр locale адаптировать значение на лету. Это также было бы более отказоустойчивым для будущих выпусков.

add_filter( 'locale', function( $default_locale ) {
if ( isset( $_SESSION[ 'WPLANG' ] ) )
return $_SESSION[ 'WPLANG' ];

return $default_locale;
} );

Кстати, WPLANG поскольку ключ в сеансе, вероятно, может вызвать проблему конфликта имен. Имейте в виду, что другие плагины WordPress могут также использовать глобальный сеанс.

0
По вопросам рекламы [email protected]