web-dev-qa-db-ja.com

WordPressがAjaxレスポンスに(ゼロ)を追加するのはなぜですか?

exit()またはdie()でAjax処理関数を終了しない限り、Ajax関数は希望どおりの正しい出力を受け取りますが、0が続きます。

なぜそれが起こっているのですか?

それはそのようになることを意味しますか、それは修正されることができますか?

add_action('wp_ajax_get_homepage', 'get_homepage');
add_action('wp_ajax_nopriv_get_homepage', 'get_homepage');

function get_homepage(){
    echo "get_homepage ->";
    exit();
}

私は プラグインのAJAX を読んだことがありますが、なぜそれが必要なのでしょうか。

14
Radek

admin-ajax.phpからのデフォルトの応答は、

die( '0' );

目的のコンテンツを返した後に、独自のexit()またはdie()を追加することで、admin-ajax.phpからのデフォルトの応答も返されないようにします。

それはまた一般的にあなたのajax呼び出しが成功したことを意味します。

結局、あなたの質問に答えるために、それはこのように働くことを意味します。コンテンツを返した後に終了してしていることは、正しいことです。

28
userabuser