Почему хук "plugins_loaded" не срабатывает?

2 сент. 2013 г., 18:18:56
Просмотры: 17.3K
Голосов: 8

Я пытаюсь вызвать 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"), всё работает нормально.

Может быть полезно знать, что я работаю с кастомной темой.

Буду благодарен за любые подсказки или вопросы, если вам нужно что-то уточнить, чтобы помочь мне.

1
Комментарии

В дополнение к тому, что сказал Geert, почему бы не использовать load_theme_textdomain(), если вы работаете с темой.

User User
2 сент. 2013 г. 18:31:28
Все ответы на вопрос 1
3
22

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

2 сент. 2013 г. 18:26:26
Комментарии

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

jansensan jansensan
2 сент. 2013 г. 19:32:27

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

Geert Geert
2 сент. 2013 г. 21:30:36

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

jansensan jansensan
8 сент. 2013 г. 04:30:22