Как проверить запись вызвана аяксом или нет

8 января 2020

Представить современный сайт без использования аякс-технологий невозможно. В Вордпресс аякс-запросы часто используется вместе с обычными. Иногда их нужно как-то идентифицировать и различать в циклах. Оказывается, все просто.

Кворк 3

Прежде чем реализовать какую-нибудь фичу в Вордпресс, я всегда задаю себе вопрос: а не велосипед ли я изобретаю?

Вордпресс — невероятная платформа. Наверное, 99% повседневных задач решаются с помощью ее нативных функций. Даже когда терзают большие сомнения в наличии той или иной функции, оказывается все уже давно изобретено, просто бери и используй.

Стояла вполне тривиальная задача сделать бесконечную подгрузку записей в single.php. Задача усложнялась тем, что подгружаемые записи должны были иметь несколько иной вид. Настолько, что простой правкой CSS это не решалось. Чтобы не плодить кучу кода, у меня есть правило делать единый шаблон записи для каждого типа и использовать его глобально по всей теме. На самом деле это очень удобно, особенно вносить какие-то изменения в дизайн, логику. И только поэтому, менять правила и делать отдельный шаблон для подгружаемых постов очень не хотелось.

Нужно было сделать простую проверку является запись загруженной или подгруженной.

Первое, что пришло в голову — покопаться в суперглобальных переменных PHP. Например, в $_SERVER[‘HTTP_X_REQUESTED_WITH’]

Но оказалось, что с версии 4.7.0 в Вордпресс существует маленькая, но очень полезная функция wp_doing_ajax(). Я как-то упустил из виду ее появление.

Функция работает очень просто

if(wp_doing_ajax()){
  // AJAX запрос
}

В зависимости от результата возвращается true или false.

Теперь с wp_doing_ajax() мы можем отлавливать аякс-запросы, внедряться в них, вешать хуки и т.д.

Подпишитесь на мой телеграм и первыми получайте новые материалы, в том числе которых нет на сайте.

INNERSTAT
Иван Данилин

Практикующий веб-разработчик, специализируюсь на платформе Вордпресс.

Добавить комментарий