Почему хук "plugins_loaded" не срабатывает?
Я пытаюсь вызвать load_plugin_textdomain
после загрузки плагинов, но это не происходит. У меня активирован плагин, разве этот хук не должен сработать?
add_action("plugins_loaded", "test_override");
function init_localization()
{
echo "init_localization<br>";
load_plugin_textdomain
(
TEXT_DOMAIN,
false,
LANGUAGE_DIR
);
}
function test_override()
{
echo "text_override<br>";
}
В другом контексте, при вызове add_action("init", "init_custom_post_types")
, всё работает нормально.
Может быть полезно знать, что я работаю с кастомной темой.
Буду благодарен за любые подсказки или вопросы, если вам нужно что-то уточнить, чтобы помочь мне.

Взгляните на файл wp-settings.php. Вы увидите, что действие plugins_loaded
срабатывает до загрузки темы. Первое действие, доступное для подключения тем, — это действие after_setup_theme
.

Очень круто, спасибо за руководство, Geert и splashingpixels. Я не использовал эти события или функции просто потому, что не знал о них и полагался на другой проект. Теперь я понимаю, что действие вызывается, однако переводы не применяются. Элементы перевода предназначены для меток пользовательского типа записи. Где мне искать, чтобы они подхватывались из PO/MO файлов?

Многие плагины не подключают свои переводы к правильному хуку (например, after_setup_theme
или init
). В этом случае вы не можете переопределить их из своей темы. Вот как плагины должны правильно загружать переводы. Если автор плагина не обновляет код, вы можете использовать обходной путь с must-use-plugin.

Думаю, я был неясен. splashingpixels направил меня на правильный путь: я на самом деле создаю пользовательскую тему, поэтому мне не нужна информация о плагинах. Я использую add_action("after_setup_theme", "init_localization")
, но административная часть/CMS WordPress не применяет строки из PO/MO к элементам, как ожидалось. Есть советы?
