WordPressでajaxを使用するときに注意すること
WordPress
ログイン時とログアウト時で登録するフックが異なる
add_action( 'wp_ajax_xxxxx', 'get_xxxxx' ); // ログイン時
add_action( 'wp_ajax_nopriv_xxxxx', 'get_xxxxx' ); // ログアウト時
function get_xxxxx(){
}
ログインしていなくても使用したい場合は「wp_ajax_nopriv~」のほうも設定してください。
謎の0が表示される
WordPressでajaxを使用したときに
正常に処理が通って、データ取ってきて表示できたぞ!と思ったら最後に「0」が表示される…
どこにも0を出力しているコードはないのに
admin-ajax.phpを直接表示すると0が出てくるのでどうやらこの値が表示されているようです。
最終行にこんな記載が…
// Default status.
wp_die( '0' );
さてどうやって表示しないようにするのか…
修正前のコード
add_action( 'wp_ajax_xxxxx', 'get_xxxxx' );
add_action( 'wp_ajax_nopriv_xxxxx', 'get_xxxxx' );
function get_xxxxx(){
//処理
return;
}
修正後のコード
add_action( 'wp_ajax_xxxxx', 'get_xxxxx' );
add_action( 'wp_ajax_nopriv_xxxxx', 'get_xxxxx' );
function get_xxxxx(){
//処理
die();
}
dieで終了させることで対応しました。