wordpressのデータベースとajax通信をして、カスタムフィールドに追加した復数のデータを取得したいとき、カスタムフィールドのデータを含んだ配列を作成し、ajaxで送るのが便利である。(もっと良い方法はあるかも?)
コード
$data = get_posts(); $fuga = array(); foreach ($data as $value) { $postLatLng = array("ID" => $value->ID, "place" =>get_post_meta($value->ID , 'place' ,true), "lat" => get_post_meta($value->ID , 'lat' ,true), "lng" => get_post_meta($value->ID , 'lng' ,true)); $fuga[] = $postLatLng; } $res = json_encode($fuga);
解説
- get_postsで投稿の配列を取得
$data = get_posts();
2. 配列を定義する
$fuga = array();
3. get_postsで取得したIDを基にpostmetaのデータを取得し配列を作成。
$postLatLng = array("ID" => $value->ID, "place" =>get_post_meta($value->ID , 'place' ,true), "lat" => get_post_meta($value->ID , 'lat' ,true), "lng" => get_post_meta($value->ID , 'lng' ,true));
4. 配列($fuga)に2で作成した配列($postLatLang)を追加。
$fuga[] = $postLatLng;
ポイント
ループの中で配列に追加する処理を行う。
$fuga[] = $postLatLng;
このコードで配列($fuga)に別の配列($postLatLng)を追記して保存でき、foreachでループさせれば、配列が終わるまで繰り返せる。 あとは、ajaxで送るだけ!!!