ワードプレスで特定の投稿IDを持つ投稿データだけを取得するPHPコードをご紹介いたします。
任意の投稿IDリストから投稿データを取得
任意の投稿IDのリストから投稿データを取得するコードは下記のようになります。
$post_ids = array(1,2,3); $post_query = new WP_Query(array('post_type' => 'post','post__in' => $post_ids,'posts_per_page' => -1));
上記コードでは投稿ID1,2,3の投稿のデータをWP_Queryを使用して取得します。
‘post_type’ => ‘post’は「投稿」を示します。
‘post__in’に投稿IDの配列を渡すとその配列の投稿のみを取得できます。
‘posts_per_page’ => -1 は無制限の数を取得するという意味になります。
取得した投稿のデータを処理する
見つかった投稿の数は下記のコードで取得できます。
$found_number = $post_query->found_posts;
見つかった投稿そのもののデータは下記のようなコードで取得できます。
$found_posts = $post_query->posts;
$found_postsには下記のような構造でデータが入ります
array 0 => object(WP_Post)[30050] public 'ID' => int 1 public 'post_author' => string '1' (length=1) public 'post_date' => string '2024-08-14 15:10:20' (length=19) public 'post_date_gmt' => string '2024-08-14 06:10:20' (length=19) public 'post_content' => string '投稿のコンテンツ' (length=287) public 'post_status' => string 'publish' (length=7) public 'comment_status' => string 'open' (length=4) public 'ping_status' => string 'closed' (length=6) public 'post_password' => string '' (length=0) public 'post_name' => string '投稿のスラグ' (length=17) public 'to_ping' => string '' (length=0) public 'pinged' => string '' (length=0) public 'post_modified' => string '2024-09-17 14:07:55' (length=19) public 'post_modified_gmt' => string '2024-09-17 05:07:55' (length=19) public 'post_content_filtered' => string '' (length=0) public 'post_parent' => int 0 public 'guid' => string 'http://****&p=16429' (length=54) public 'menu_order' => int 0 public 'post_type' => string 'listing' (length=7) public 'post_mime_type' => string '' (length=0) public 'comment_count' => string '2' (length=1) public 'filter' => string 'raw' (length=3) 1 => object(WP_Post)[30049] public 'ID' => int 2 public 'post_author' => string '1' (length=1) ...
このデータはオブジェクト配列ですので下記のようなコードで次から次にデータを出力したりすることが可能です。
foreach ( $found_posts as $post ) { echo "投稿のID".$post->ID; echo "投稿のコンテンツ".$post->post_content; }
WordPress ワードプレスのテーマやプラグインのカスタマイズコーディングのご依頼・ご相談はワードプレスドクターまでお気軽にお送りください