Корректность отображения add_action(‘loop_start’, ‘функция’)
Всем привет. Решил выводить в категориях в самом начале описание её, потом цикл, затем картинку, цитату и другие вещи. Написал такую функцию (утрировано):
function auto_insert () {} add_action('loop_start', 'auto_insert'); add_action('loop_end', 'auto_insert');
Внутри, конечно, различные условия. Итак, когда в рубрике есть записи, то всё работает прекрасно. Но если в категории ещё нет записей, то цикл, как я понимаю, не срабатывает, и функция начинает выполнятся на виджете "Популярные записи".
Подскажите, может есть какой-то вариант на другой хук вешать функцию? У меня есть рабочий вариант, когда можно прописать в шаблоне функцию "жестко" и всё прекрасно, но тут ведь спортивный интерес Буду признателен за советы!
Ставьте проверку: вот когда пользуешься pre_get_posts есть такое условие
Вы можете проверять через глобальную переменную $wp_query
(если я правильно понял, что делает Ваш код)
Спасибо за ответ. Но у меня ничего не вышло. Как я понял, is_main_query какой увидела первым цикл, тот и считает главным. А для автоматизации процесса так не пойдет, так как темы разные. Попробовал тему classic, что идет в комплекте с WP - промах.
campusboy - вы нашли ответ? Встала аналогичная задача. Но если записей в произвольном типе записей еще нет - не срабатывает экшен loop_start
Увы, не нашёл
у меня родилась идея - создавать программно запись там "Привет мир". Так всегда будет loop_start отрабатывать.
Или шоркод, который возвращает пустоту Или типа того. Чтобы "Привет Мир" не появлялось нигде. Или оно итак не появляется?
т.к. эти типы записей (вернее в них таксономии == группы) создают авторы сайта (это функционал создания групп). т.к. они создают группу - то запись в ней первая "привет мир" думаю не повредит. Отредактируют или удалят ее. Или забьют - пусть как памятка висит.
В итоге над группой выведется блок с аватаркой группы, описанием и панелью управления. Т.е. мы автоматизируем вывод над циклом нашей функции. И отдавая плагин многим пользователям - не надо будет им говорить "откройте archive.php вашей темы, на циклом впишите строчку - вызов функции"
Понимаю что решение не идеальное - но как автоматизировать для тысяч пользователей плагина, чтобы они нигде ничего не вписывали - выход вижу пока только такой