Поскольку WPLANG устарела в WordPress 4, что вы используете для установки выбранного пользователем языка?
В версиях 3.x.x я использовал define (‘WPLANG’, $ lang) установить язык, а затем на страницах можно получить его с помощью get_locale (). Мне нужно использовать этот подход, чтобы дифференцировать контент для разных языков. Я знаю, что можно изменить язык в Настройки-> Общие, но мне нужно сделать это программно.
Спасибо
Я нашел решение, которое работает для меня. Вместо того, чтобы использовать define (‘WPLANG’, $ _SESSION [‘WPLANG’]); я использую $ locale = $ _SESSION [‘WPLANG’]; .
В WordPress 4.0 определение WPLANG
от wp-config.php
как вы уже сказали, амортизируется. Он был заменен опцией под названием WPLANG
хранится в таблице <TablePrefix>_options
,
Вы могли бы использовать get_option()
чтобы получить к нему доступ:
$my = get_option('WPLANG','en_US');
Более подробную информацию об изменении можно найти Вот.
Вместо манипулирования с глобальными переменными или константами можно использовать фильтр locale
адаптировать значение на лету. Это также было бы более отказоустойчивым для будущих выпусков.
add_filter( 'locale', function( $default_locale ) {
if ( isset( $_SESSION[ 'WPLANG' ] ) )
return $_SESSION[ 'WPLANG' ];
return $default_locale;
} );
Кстати, WPLANG
поскольку ключ в сеансе, вероятно, может вызвать проблему конфликта имен. Имейте в виду, что другие плагины WordPress могут также использовать глобальный сеанс.