Ajax通信でWordPressと通信する

今回はアプリ(クライアント側)からWordPressのデータ(サーバー側)の情報を取得する

このとき、違うドメインのデータが必要となるため、Cross-Domain-Ajaxプラグインを使用して通信を有効にする必要がある。

クライアント側


<script> var wp_url_admin_ajax = 'http://~/wp-admin/admin-ajax.php'; //それぞれ設定 jQuery(function($){ $.ajax({ type: 'POST', url: wp_url_admin_ajax, crossDomain: true, //クロスドメインを有効にする data: { 'action' : 'tell_me' }, success: function (response) { alert(response); } }); }); </script>

crossDomainをtrueにする。

サーバー側(functions.php)


header("Access-Control-Allow-Origin: *"); add_action('wp_ajax_tell_me', 'tell_me'); // ログイン状態のユーザーからのアクセスで動作する add_action('wp_ajax_nopriv_tell_me', 'tell_me'); // 非ログインのユーザーからのアクセスで動作する function tell_me() { $res[0] = 35.687151139; //今回はサンプルデータ $res[1] = 139.7817365;   //実際使う際にはここにデータを取得するコードを書く echo json_encode($res, JSON_UNESCAPED_UNICODE); die(); }

これでアプリ側で読み込んだ際にalertが表示される