Плагин Ajax в Wordpress - PullRequest
       34

Плагин Ajax в Wordpress

5 голосов
/ 12 июля 2011

Я создаю простой плагин wordpress и пытаюсь использовать AJAX, но я всегда получаю 0 в ответе ajax.

<script type="text/javascript" >
jQuery(document).ready(function($) {

var data = {
    action: 'my_action',
    whatever: '1234'
};


jQuery.post("http://localhost/taichi/wp-admin/admin-ajax.php", data,   function(response) {
    alert(response);
});
});
 </script>
<?php
add_action('wp_ajax_my_action', 'my_action_callback');
add_action( 'wp_ajax_nopriv_my_action', 'my_action_callback' ); 




function my_action_callback() {

echo "test";
die();

}

что я делаю не так?

Ответы [ 5 ]

1 голос
/ 12 июля 2011

Вы должны поместить add_action в конец файла, иначе он не найдет функцию обратного вызова

1 голос
/ 06 июня 2012

Попробуйте изменить:

jQuery.post("http://localhost/taichi/wp-admin/admin-ajax.php", data,   function(response)

Кому:

jQuery.post(ajaxurl, data, function(response) 

И сначала проверьте, работает ли он на стороне администратора. Должно работать нормально.

0 голосов
/ 30 октября 2013

Попробуйте следующий код в вашем файле плагина.или в файле function.php


    
    jQuery(document).ready(function($){
    var ajaxURL = 'http://localhost/taichi/wp-admin/admin-ajax.php';
    var dataString = 'action=mnd_news';
    $.ajax({
    type: "POST",
    url: ajaxURL,
    data: dataString,
    cache: false,
    success: function(response){
    if(response != 'error') {
    alert(response);
    }
    }
    });
    });
    
    add_action('wp_ajax_mnd_news', 'get_mnd_ajax');
    add_action( 'wp_ajax_nopriv_mnd_news', 'get_mnd_ajax' ); 
    function get_mnd_ajax() {
    echo "test";
    die();
    }

0 голосов
/ 20 февраля 2013

Была такая же проблема, оказалось, что мой обратный вызов был внутри php-файла, который был включен только на мою страницу "Опции темы".

Чтобы проверить, может ли функция вызывать проблемы admin-ajax.php, попробуйте добавить var_dump(function_exists("your_callback_name")); в конец wp-admin / admin-ajax.php (до die( '0' );), а затем посмотрите на ваш вывод AJAX.

0 голосов
/ 12 июля 2011

Возвращаемые значения ошибок

Если запрос AJAX не выполняется, когда URL-адрес запроса - wp-admin / admin-ajax.php, он вернет либо -1 or 0 в зависимости от причины, по которой онне удалось.

Прочитать это

Редактировать

admin-ajax всегда возвращать значение по умолчанию «0» в качестве вывода.предупреждающий ответ, который вы 0 only .use die() в функции обратного вызова прекратят.

...