День: 24.05.2016

  • 24.05.16
  • 20:50
  • 907
  • 0

За один запуск WordPress активирует не более одного хука wp_ajax_* — в случае, когда обрабатывается AJAX-запрос. При обработке не-AJAX-запросов эти хуки не активируются. Поэтому, когда количество обработчиков AJAX велико, регистрировать их все сразу нет смысла.

В самом начале обработки запроса скрипт /wp-admin/admin-ajax.php задаёт константу DOING_AJAX как true, а действие, которое должно быть обработано, находится в $_REQUEST['action']. Этого достаточно, чтобы определить обработчик, который должен быть запущен. Если имена функций-обработчиков построены в виде "myplugin_ajax_{$action}", то регистрация нужного хука может выглядеть так:

После этого для добавления нового обработчика AJAX потребуется просто определить функцию с соответствующим именем.