Ajax в WP

Посмотрим в данном гайде как сделать обработку ajax запроса на WordPress.

WP предоставляет два hook-а для подключения PHP обработчика к ajax запросу. Это wp_ajax_ACTION и wp_ajax_nopriv_ACTION. Оба они работают абсолютно одинаково. Отличие заключается в том, что первый хук срабатывает только для залогиненных пользователей, а второй — только для анонимов.

Если вам нужно, чтобы ajax выполнился в обоих случаях одинаково, то цепляйте их к одному обработчику:

Часть имени зацепки «ACTION» — это ваш ключ, который вы передаёте в ajax-запросе в обязательном параметре ‘action’.

WP AJAX cо стороны фронт-энд

Приёмником запроса должен быть скрипт /wp-admin/admin-ajax.php.

Для примера, подключим отправку ajax к кнопке:

PHP вернет данные с сервера скрипту через объект response.

WP AJAX со стороны бек-энд

Здесь нам нужно объявить и реализовать обработчик.

Структура ответа сервера

Осталось взглянуть, что возвращается на сторону клиента в переменной response.

При успешном завершении вы получите:

Вы можете также выполнить ответ сервера с помощью функции

и получить:

Если произошла какая либо ошибка, то response будет равен 0 или -1. Ноль WP возвращает, если нет соответствующего указанному action обработчика, а «-1» — в случае прочих ошибок.

Дополнительные замечания

Ссылку на скрипт admin-ajax.php более правильно генерировать вот так:

Если вызов ajax обрабатывается функцией некоторого класса, то инициализация обработчика внутри класса может выглядеть вот так:

Написать комментарий

Мало букафф? Читайте есчо !

Цепляем js-код после ajax в Drupal 7, продолжение экспериментов

Май 6, 2017 г.

Я нашел некоторые особенности того примера, что я давал вчера. Потому я решил немного ещё поэкспериментировать, чтобы дать более качественное решение. ...

Читать

Обмен данных Angular с бек-энд на PHP

Ноябрь 11, 2016 г.

Стоит ли рассказывать, что Ангуляр при всей своей прелести лишь одна сторона медали - frontend, который как то должен взаимодействовать со второй половинкой ...

Читать

 

Комментарии к «Ajax в WP»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: