Почему не срабатывает add_action (wp_footer, 'method')?

15 июн. 2015 г., 16:36:40
Просмотры: 33.7K
Голосов: 6

В файле functions.php моей темы я добавил:

add_action('wp_footer', 'method');

function method()
{
echo "это вызывается";
die();
}

Мой файл footer.php в WordPress выглядит так:

<?php wp_footer(); ?>
</body>
</html>

Какая может быть причина того, что мой хук add_action не вызывается?

Я могу предоставить дополнительный код или информацию, если потребуется.

РЕДАКТИРОВАНИЕ:

Если вместо die() я вывожу скрипт, он не появляется в футере страницы

add_action('wp_footer', 'method');

function method()
{
echo "<script>...</script>";
}
7
Комментарии

почему ты используешь die()? возможно, в этом твоя проблема.

KnightHawk0811 KnightHawk0811
15 июн. 2015 г. 16:40:46

Я хочу проверить, вызывается ли это. Если я вставлю echo '<script>..</script>', сохраню и проверю страницу, то не нахожу скрипт в футере

Sad CRUD Developer Sad CRUD Developer
15 июн. 2015 г. 16:42:43

Уверен, KnightHawk прав. Скорее всего, ты завершаешь приложение до генерации вывода.

jdm2112 jdm2112
15 июн. 2015 г. 16:43:23

Извините. die() был плохим примером

Sad CRUD Developer Sad CRUD Developer
15 июн. 2015 г. 16:46:07

Вы проверяете это в админке?? (скорее всего, нет :) ). Если да, используйте хук admin_footer для этого.

Domain Domain
15 июн. 2015 г. 16:56:59

@WisdmLabs Я заменил wp_footer на admin_footer, и это сработало, так что вы можете оставить это как ответ, и я приму его. Есть ли у этого какие-то недостатки?

Также я изначально проверял это в админке

Sad CRUD Developer Sad CRUD Developer
15 июн. 2015 г. 17:45:08

@BDillan Рад помочь. В этом нет никаких недостатков. Добавил свой ответ. :)

Domain Domain
16 июн. 2015 г. 10:24:15
Показать остальные 2 комментариев
Все ответы на вопрос 2
1
12

В WordPress хуки для футера различаются для бэкенда (админки) и фронтенда.

Для админки используйте хук "admin_footer".

Для фронтенда используйте хук "wp_footer".

16 июн. 2015 г. 10:22:05
Комментарии

Ох, это кажется таким простым, но я все равно забыл! Спасибо. А нельзя проголосовать 3 или 4 раза? :D :D

Erenor Paz Erenor Paz
18 нояб. 2016 г. 17:00:57
0

С таким общим названием функции, как method(), может возникнуть конфликт имен. Попробуйте использовать что-то более уникальное. Кроме того, если у вас есть доступ к серверу, вы также можете вывести информацию в журнал ошибок, чтобы не беспокоиться о том, что страница может быть отображена некорректно.

15 июн. 2015 г. 17:47:38