
$( '#submit' ).on( 'click', function(){ $.ajax({ type: 'POST', url: <?=admin_url('admin-ajax.php')?>, data: { 'action' : 'hoge_f', }, dataType: "json", success: function( obj){ alert( obj ); } }); return false; });次にWPテーマのファンクションファイルに下記を追加記述。
function hoge_f(){ echo json_encode($_POST); die(); } add_action( 'wp_ajax_hoge_f', 'hoge_f' ); add_action( 'wp_ajax_nopriv_hoge_f', 'hoge_f' );ここでミソなのが、die();という部分、これを除けると0という文字も出力されてしまう。 ちなみにwp_ajaxがログイン時の振る舞い、wp_ajax_noprivがログアウト(=訪問者)時の 振る舞いだそうだ。 この2つの勘所だけ覚えとけばWordPressで非同期処理が 行えるのではないだろうか、もっと詳しく知りたい場合、admin-ajax.phpの中身を 見たらよいのだろうけど、にわかWordPress職人さんはコレだけ 覚えとけば良さそうだと。