WordPressのデータを取得する方法

Ajaxを用いて、WordPressの投稿データをブラウザで取得するには、WordPressのfunctions.phpとブラウザ側(index.html)に以下の処理を加えます。

<functions.php>

function my_ajax_get_posts(){

$returnObj = array();
//配列$returnObjを宣言

  //取得するデータの指定 $args = array( ‘post_type’ => ‘post’,//投稿タイプ ‘numberposts’ => 100,//取得する投稿の数を指定 );

$posts = get_posts( $args );

//配列$returnObjに投稿データを格納
foreach( $posts as $key => $post ) {
    $returnObj[$key] = array(
        'post_title' => $post->post_title,
        'permalink' => get_permalink( $post->ID ),
  'custom_field_data' => get_post_meta( $post->ID, '{カスタムフィールドのキー}' , true),

       //カスタムフィールドの値をキーを指定して取得する ); }

echo json_encode( $returnObj );

die();

} add_action( ‘wp_ajax_my_ajax_get_posts’, ‘my_ajax_get_posts’ ); add_action( ‘wp_ajax_nopriv_my_ajax_get_posts’, ‘my_ajax_get_posts’ );

index.html

jQuery(function($) { $.ajax({ type: “POST”, url: “http://{自分の名前}.local/wp-admin/admin-ajax.php”, //処理を命令する先のパスの設定 data: { action: “my_ajax_get_posts” //使用する関数の設定 }, success: function(response) { jsonData = JSON.parse(response); $.each(jsonData, function(i, val) {     //受け取った配列を一つずつコンソール上に表示する console.log(val[“post_title”]); //投稿タイトル console.log(val[“permalink”]); //投稿リンク console.log(val[“{カスタムフィールドのキー}”]); //指定したカスタムフィールドの値 }); } }); return false; });