functions.php

Yusuke 23views 更新:2016年6月29日
//以下Ajax通信用の追記コード

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() {

    //まずここでは、get_posts関数を使ってカスタムフィールドに登録してあるデータをとってくる作業が必要となる。そのとってきたデータをfor分で
    //回すことによってresの配列に入れ直すことでwebブラウザ側に送信をする
    $res = get_posts( array(

        'category_name' => 'Uncategorized', //特定のカテゴリースラッグを指定
        'posts_per_page' => 20 ,//取得記事件数
//  'meta_query' => array(
//      array(
//          'key' => 'Name',
//          'value' => null
//      ),
//      array(
//          'key' => 'Longitude',
//          'value' => null
//      ),
//      array(
//          'key' => 'Latitude',
//          'value' => null
//      ),
//      array(
//          'key' => 'Address',
//          'value' => null
//      ),
    )

    );

$j =0 ;
    foreach($res as $post){

      setup_postdata($post);

        $lo[$j]['Longitude'] = get_post_meta( $post->ID , 'Latitude' ,true); //とある投稿記事のとあるカスタムフィールドの値をとるもの
        $lo[$j]['Latitude'] = get_post_meta( $post->ID , 'Longitude' ,true);
//      _log(get_post_meta( $post->ID , 'Longitude' ,false));
//      _log(get_post_meta( $post->ID , 'Latitude' ,false));
        $j++;
    }

//  _log($lo);


    echo json_encode($lo, JSON_UNESCAPED_UNICODE); //AjaxはJSONファイルしか扱えないので、JSON形式にエンコードする

    _log(json_encode($lo, JSON_UNESCAPED_UNICODE));
    die();
//  $id = $_POST['id'];
//  $res[0] = get_the_title($id);
//  $res[1] = get_post_meta($id,'name',true);
//  _log($res);
//  header("Content-Type: application/json; charset=utf-8");
//  header("Access-Control-Allow-Origin: *");
//  echo json_encode($res, JSON_UNESCAPED_UNICODE);
//
//  die();
}

if(!function_exists('_log')){
    function _log($message) {
        if (WP_DEBUG === true) {
            if (is_array($message) || is_object($message)) {
                error_log(print_r($message, true));
            } else {
                error_log($message);
            }
        }
    }
}

longitude latitude を逆にいれてしまわないように注意

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません