ワードプレスには、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ドクターまでお気軽にお送りください




