AJAX запросы в WordPress с помощью admin-ajax.php

В WordPress с каждым обновлением на AJAX вешают все больше функционала. А знаете ли вы, что тоже можете пользоваться этими решениями в разработке тем и плагинов?


Чем объяснять, лучше покажу:

<?php
add_action('wp_footer', 'ajax__example', 99);

function ajax__example() {
?>
    <script type="text/javascript" >
        jQuery(document).ready(function() {
            jQuery('#ajax__say_hello').click( function(e) {
                e.preventDefault();

                var data    = { action  : 'example' };

                jQuery.post( <?php echo site_url();?>'/wp-admin/admin-ajax.php', data, function(response) {

                    if( response == "done" ) {
                        alert("Hello!");
                    }
                    else if( response == "empty" ) {
                        console.log("Sorry, we have some problems...")
                    }
                });
            });
        });
    </script>
    <?php
}

/*  
 *  wp_ajax_#CALLBACK# - это обработчик для АВТОРИЗОВАНЫХ пользователей
 *  wp_ajax_nopriv_#CALLBACK# - это обработчик для НЕ АВТОРИЗОВАНЫХ пользователей
 *  #CALLBACK# обязательно должен совпадать с передаваемым параметром ACTION!
 */
add_action('wp_ajax_example', 'example_callback');
add_action('wp_ajax_nopriv_example', 'example_callback');

function example_callback() {

    if( $_POST["action"] == "example" )
        echo "done";
    else
        echo "empty";
    wp_die();
}

Нам нужно:

  1. Функция, которая будет выводить JS код;
  2. Функция, которая будет обрабатывать запросы для авторизованных пользователей;
  3. Функция, которая будет обрабатывать запросы от не авторизованных пользователей.

Последние две могут быть одной функцией.

Поле

action

обязательно должно быть и передаваться в обработчик!

Пишите на почту или в комментарии, если надо подробно прокомментировать какую-нибудь строчку.


admin

Share
Published by
admin

Recent Posts

Лучшие дистрибутивы Linux

Если говорить о том, какие лучшие дистрибутивы Linux мы знаем, то этот список может быть…

1 неделя ago

Лучшие браузеры для Ubuntu

Хотя Ubuntu и поставляется со встроенным обозревателем Firefox многие пользователи считают что это не самая…

1 неделя ago

Установка Remmina Ubuntu 16.04 или 16.10

Что такое Remmina? Remmina — это совершенно бесплатный и свободный клиент так называемого удаленного рабочего…

1 неделя ago

Плюсы Ubuntu

Как мы знаем, Ubuntu это самая популярная сборка из систем на базе ядра Linux. У…

1 неделя ago

Выбираем ноутбук для Linux

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

1 неделя ago

Установка Linux рядом с Windows 10

Если вы решили ознакомиться с операционной системой Linux более детально и задались вопросом как установить…

1 неделя ago