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

Консоль удаленного рабочего стола(rdp console)

Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…

2 недели ago

Настройка сети в VMware Workstation

В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…

2 недели ago

Логи брандмауэра Windows

Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…

2 недели ago

Правильный способ отключения IPv6

Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…

2 недели ago

Ключи реестра Windows, отвечающие за параметры экранной заставки

Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…

2 недели ago

Как управлять журналами событий из командной строки

В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…

2 недели ago