Обратите внимание: функция _load_textdomain_just_in_time была вызвана некорректно. Как осуществляется загрузка переводов для...?

Всем привет! У меня возникла проблема, и буду благодарен, если кто-то сможет помочь её решить. <br/> <br/> Получаю следующее сообщение об ошибке: <br/> <b>Notice:</b> Функция _load_textdomain_just_in_time вызвана неправильно. Загрузка переводов для домена wordpress-seo была инициирована слишком рано. Это, как правило, указывает на то, что некоторый код в плагине или теме выполняется раньше, чем нужно. Переводы должны загружаться во время действия init или позже. Дополнительную информацию можно найти на странице «Отладка в WordPress». (Это сообщение появилось в версии 6.7.0.) <br/> <br/> Ошибка возникает для следующих плагинов: <br/> <b>cf7-telegram<br/>
cyr2lat<br/>
WooCommerce<br/>
yml-for-yandex-market<br/>
translatepress-multilingual<br/>
wordpress-seo</b> <br/> <br/> Уведомления указывают на то, что функция _load_textdomain_just_in_time вызывается некорректно, и загрузка переводов для некоторых доменов (плагинов) происходит слишком рано. В сообщениях об ошибках рекомендуется производить загрузку переводов на этапе init или позже. <br/> <br/> Вот что я уже сделал для устранения проблемы: <br/> 1) Обнаружил, что функция load_theme_textdomain вызывается внутри metrotile_setup(), которая подключена к действию after_setup_theme. Понял, что after_setup_theme выполняется до init, и это могло стать причиной проблемы. <br/> 2) Переместил вызов load_theme_textdomain в новую функцию metrotile_load_textdomain(), подключенную к действию init: <br/> <pre><code class="php">function metrotile_load_textdomain() {
    load_theme_textdomain('metrotile', get_template_directory() . '/languages');
}
add_action('init', 'metrotile_load_textdomain');</code></pre> <br/> 3) О
  • 13 ноября 2024 г. 7:53
Ответы на вопрос 2
Вы проделали хорошие шаги для устранения проблемы с загрузкой переводов в вашей теме WordPress. Как вы заметили, функция `load_theme_textdomain` должна вызываться во время действия `init` или позже, чтобы избежать предупреждений, связанных с тем, что функции загрузки переводов вызываются слишком рано.

Давайте подытожим ваши действия и добавим несколько дополнительных рекомендаций для решения данной проблемы:

1. **Перемещение загрузки языковых файлов**: Вы корректно переместили вызов `load_theme_textdomain` в действие `init`, что является правильным решением. Это должно устранить предупреждение для вашей темы.

   ```php
   function metrotile_load_textdomain() {
       load_theme_textdomain('metrotile', get_template_directory() . '/languages');
   }
   add_action('init', 'metrotile_load_textdomain');
   ```

2. **Проверка плагинов**: Если у вас возникают похожие предупреждения для других плагинов (например, `wordpress-seo`, `WooCommerce` и других), вы также можете проверить, как эти плагины загружают свои переводы. Обычно, если плагин использует `load_plugin_textdomain`, эту функцию также следует вызывать в `init` или в более позднем действии, таком как `plugins_loaded`.

   Обычно в плагинах реализация загрузки переводов выглядит так:

   ```php
   function your_plugin_load_textdomain() {
       load_plugin_textdomain('your-plugin-domain', false, dirname(plugin_basename(__FILE__)) . '/languages/');
   }
   add_action('plugins_loaded', 'your_plugin_load_textdomain');
   ```

3. **Обновление плагинов**: Убедитесь, что все ваши плагины и ядро WordPress обновлены до последних версий. В некоторых случаях проблема может быть уже исправлена разработчиками плагинов.

4. **Снижение уровня ошибок**: Если предупреждения все еще появляются и вызывают беспокойство, вы можете временно понизить уровень сообщений об ошибках в вашем `wp-config.php`, установив:

   ```php
   error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);
   ```

   Однако это не решит саму проблему с загрузкой переводов, а лишь скроет предупреждения.

5. **Связь с разработчиками плагинов**: Если после всех шагов предупреждения все еще возникают, имеет смысл обратиться к разработчикам плагинов с запросом на исправление. Вполне возможно, что в коде плагина действительно существует проблема с загрузкой переводов.

Следуя этим рекомендациям, вы сможете устранить большинство проблем, связанных с ранней загрузкой переводов в WordPress.
Эта ошибка вылезла после обновления на wordpress 6.7.0. Чтобы она не мозолила глаза - отключите дебаг в wp-config.php и ждите когда выкатят фикс, либо вп, либо плагинов 

p.s. она не из-за translatepress-multilingual
Похожие вопросы