get_locale () ведет себя странно в том же файле functions.php

Я разрабатываю многоязычный веб-портал для своего клиента – на английском и бенгальском языках. Вместо использования multisite я установил плагин Polylang. Он работает отлично через веб-сайт.

Для разных стилей CSS и разных размеров шрифтов я загружаю отдельную таблицу стилей с помощью:

function styles_and_scripts(){ wp_register_style( 'main-style-bangla', get_template_directory_uri() . '/style-bangla.css', '', '', 'screen' ); // load seperate stylesheet for Bangla if( get_locale() == 'bn_BD' ) { wp_enqueue_style( 'main-style-bangla'); } } add_action( 'wp_enqueue_scripts', 'styles_and_scripts' ); 

Он работает очень хорошо и загружает разные CSS, когда я перехожу на бенгальский.

Я пытаюсь использовать тот же метод для применения фильтров для бенгальских цифр и строк и т. Д. С помощью этих функций и фильтров . Поэтому я делаю что-то вроде этого в моих functions.php :

 if( get_locale() == 'bn_BD' && !is_admin() ) { add_filter( 'get_the_time', 'make_bangla_number' ); add_filter( 'the_date', 'make_bangla_number' ); add_filter( 'the_time', 'make_bangla_number' ); add_filter( 'get_the_date', 'make_bangla_number' ); add_filter( 'get_the_time', 'make_bangla_months' ); add_filter( 'the_date', 'make_bangla_months' ); add_filter( 'the_time', 'make_bangla_months' ); add_filter( 'get_the_date', 'make_bangla_months' ); } 

Но это не работает. Я попытался понять, почему?

 $my_locale = get_locale(); var_dump( $my_locale ); 

Он возвращает « en_US » на обоих языках. Вы можете увидеть изображение ниже для доказательства: введите описание изображения здесь

Почему один и тот же бит кода в том же файле functions.php ведет себя странно в разных случаях? Затем я изменил размещение кода сразу после части очереди, но он все еще не работает. 🙁

ОБНОВИТЬ

Я нашел функцию из документации Polylang: <?php pll_current_language($value); ?> <?php pll_current_language($value); ?> ( Источник ^ ) будет извлекать текущий язык.

Я попробовал var_dump(pll_current_language()); он ничего не возвращает.

Затем мне удалось найти следующий код:

 function site_current_language() { global $polylang; echo $currentLang = pll_current_language('locale'); return $currentLang; } //add_action( 'init', 'site_current_language' ); // it does not print add_action( 'wp', 'site_current_language' ); // it prints 

Он работает нормально, он вторит текущей $locale .

Но вместо того, чтобы повторять это, если я попытаюсь вернуться, он возвращает boolean false .

Я попробовал global $polylang; var_dump($polylang); global $polylang; var_dump($polylang); без каких-либо функций или крючков, он показывает, что он не находит curlang внутри. Но если я делаю то же самое в моем стиле / скрипте enqueue fuction, он получает текущий язык.

Поэтому я подозреваю, что есть что-то связанное с правильным крюком. Обратите внимание: init hook не работает, но wp эхо. Я думаю, мы должны найти правильный крюк, чтобы заставить его работать.

Но как, я не знаю.

Solutions Collecting From Web of "get_locale () ведет себя странно в том же файле functions.php"