php回调追加0?

时间:2010-03-10 09:58:38

标签: php wordpress plugins return-value

我正在尝试编写一个简单的Wordpress插件,它会更新自定义字段值并将其递增1,然后回显结果并将其传回我的javascript代码。由于某种原因,回调函数返回的数据总是附加一个额外的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,我不知道它来自哪里。

2 个答案:

答案 0 :(得分:0)

我需要在die();中添加like_post_callback作为最后一行,因为我需要回显结果并停止正常的0返回值。

答案 1 :(得分:0)

admin-ajax始终返回默认值“0”作为输出。您必须使用die();来阻止wordpress调用其返回零的默认函数。 die();将终止脚本返回之前回复的内容。