ワードプレスには、AJAX(画面を再読み込みしないで、背後で通信を行う仕組み)が最初から実装されています。このAJAXを利用するひな形のコードをご紹介いたします。
ワードプレスでAJAXを使用するひな形1 呼び出し側のJavaScript
AJAXを実行する側のJAVASCRIPTのコードは下記のようになります。
function doajax(){ jQuery.ajax({ type: "POST", url: "<?php echo admin_url( 'admin-ajax.php'); ?>", data: { "action": "ajaxactionname", "data": 1234, }, success: function(msg){ alert(msg); } }); }
このコードでは、admin_url( ‘admin-ajax.php’); でワードプレスのAJAXを飛ばすURLを取得し、ajaxactionname という名称のAJAXアクションにdataというPOSTキーで1234というデータを送信し、返ってきた出力をアラートします。
ワードプレスでAJAXを使用するひな形2 AJAXリクエストの受け取り側のPHPコード
このコードはテーマのFunctios.phpや作成中のプラグイン等に追加します。
add_action( 'wp_ajax_nopriv_ajaxactionname', 'ajaxactionname_handler' ); add_action( 'wp_ajax_ajaxactionname', 'ajaxactionname_handler' ); function ajaxactionname_handler() { $data = $_POST["data"]; echo $data * 2; die(); }
add_action が二つあります。ここで手順1のactionを受け取る関数を定義します。
wp_ajax_nopriv_ajaxactionname
wp_ajax_ajaxactionname
太字の部分は手順1のアクション名になっている必要がございます。wp_ajax_nopriv_という接頭のアクションは、サイトのフロントエンドでAJAXを有効にするもので、wp_ajax_は管理画面でAJAXを有効にするものです。
ajaxactionname_handlerはAJAXのデータを受け取った時に実際の処理を行う関数の内容を書きます。
この例ではdataキーで $_POST により受け取った1234を二倍にして返します。
手順1ではAJAXの結果返ってきた値をアラートしますので、2468がアラートされるかと存じます。
参考になりましたら幸いです。
WordPress ワードプレスドクターワードプレスのテーマやプラグインの作成カスタマイズのご依頼ご相談はWPドクターまでお気軽にお送りください