2010-03-10 2 views
1

Я пытаюсь написать простой плагин Wordpress, который обновляет значение настраиваемого поля и увеличивает его на единицу, а затем эхо-результат, который возвращается к моему javascript-коду. По какой-то причине данные, возвращаемые функцией обратного вызова, всегда добавляются до 0.php callback добавляет дополнительные 0?

function like_post_callback() { 
    $clicked = $_POST['clickedOn']; 
    $id = $_POST['postID']; 
    if($clicked == 0) $key = "like"; 
    else $key = "reallyLike"; 

    $prevLikes = get_post_meta($id, $key, true); //true, so we only return a single value 
    $likes = 1; 
    if($prevLikes == ""){ 
     add_post_meta($id, $key, $likes); 
    } else{ 
     $likes = $prevLikes + 1; 
     update_post_meta($id, $key, $likes); 
    } 

    echo $likes; 
} 

А вот что зовет его:

$.post("<?php bloginfo('wpurl'); ?>/wp-admin/admin-ajax.php", 
{ action: "like_post", clickedOn: which, postID: "<?php the_ID(); ?>"}, function(data){ 
    alert(data); 
    $("#" + clicked).html(text + " (" + data + ")"); 
}); 

Все работает, я просто дополнительный 0 в данных по какой-то причине, и я не знаю, где он и откуда.

ответ

0

admin-ajax всегда возвращает значение по умолчанию '0' в качестве выхода. Вы должны использовать die();, чтобы остановить вызов Wordpress своей функцией по умолчанию, которая возвращает ноль. die(); прекратит выполнение сценария, возвращающего все, что вы повторили до этого.

0

Мне нужно было добавить die(); в качестве окончательной строки в like_post_callback, потому что мне нужно было эхо результата и остановить нормальное возвращаемое значение 0.

Смежные вопросы