Какой смысл использовать WordPress, встроенный в admin-ajax.php?

Я пытаюсь понять, почему использование adminajax.php выгодно, чем-то вроде этого:

add_action ('wp_loaded', 'my_ajax'); function my_ajax() { // Do Ajax, Check $_POST die(); } 

С JQuery ajax, просто указывающим на индекс блога.

admin-ajax.php кажется довольно запутанным, чтобы сделать что-то простое, с необходимостью регистрировать скрипты и добавлять крючки и настраивать URL-адрес переменной js для указания на admin-ajax.php, а затем с помощью wp_ajax_nopriv_ vs wp_ajax_. Не говоря уже о том, что это странно, что задний конец смешивается с передним концом. Я почти уверен, что есть аналогия.

Так зачем использовать его? У admin-ajax.php меньше накладных расходов? Это чисто стандартная вещь? Есть что-то волшебное в этом? Что вы пропустили, не используя его?

Solutions Collecting From Web of "Какой смысл использовать WordPress, встроенный в admin-ajax.php?"

Во-первых, как и многие вещи в WordPress, это не похоже на то, что кто-то решил «давайте сделаем это аккуратно и удобно». Это было похоже на то, что кто-то швырнул его на что-то, затем он больше привык к админу, затем он много использовал в админке, а затем стал практикой использовать его для не-админов. Или что-то в этом роде.

Во-вторых, это не так много, что он делает, зная, что он всегда делает то же самое. Вы не представляете, что делает запрос к произвольной части переднего конца. Что делать, если плагин analytics запущен, считая его как просмотр страницы? Что делать, если существует сложная логика перенаправления, которая обрабатывает сезонные URL-адреса? Что, если, что, если …

Конечная точка Ajax предназначена для ajax:

  • он объявляет константу DOING_AJAX для контекста, многие вещи ищут ее, чтобы пропустить делать то, что они делают
  • он настраивает заголовки HTTP и прочее
  • он дает вам базовое соглашение об организации кода, включая пользовательское / анонимное различие