get_post_metaで取得した要素で配列を作る

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);

解説


  1. 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で送るだけ!!!