WordPressで指定した投稿IDの情報だけ取得&指定した投稿IDだけループさせる方法

IT

ちょっとわかりにくいタイトルで申し訳ありません。
何がしたいかと言うと、特定の投稿IDの記事情報だけを取得したい時って少なからずあるんですよ。
その方法を紹介したいと言うことです。

for文でのやり方と、1つの投稿IDの記事情報だけ取得する方法をご紹介します。

単一IDの記事情報を取得する方法

例えばpostID「545454」の記事情報だけ取得したい場合ですね。


$arr =
array(
'p' => 545454,
'post_type' => 'post'
);
$posts = get_posts( $arr );
$post = get_posts( $posts );
$post = $post[0];// $postにさまざまな情報が入っています。
echo $post->post_title;//記事タイトル
echo $post->post_content;//記事コンテンツ

指定した投稿IDだけでループさせる方法

これが意外と情報ないんですよね。
全IDをループさせてほしい情報だけ取得と言うのも無駄な処理ですし、やはり指定した投稿IDだけループさせたいですよね!


$postids = array(11111,22222,33333,44444);//ループしたい投稿IDの配列を作ります。
$arrCount = count($postids);
for($loop = 0;$loop < $arrCount;$loop++){ $posts= array( 'p' => $postids[$loop],
'post_type' => 'post'
);
$post = get_posts( $posts);
$post = $post[0];
}

後半は単一記事の方法と同じですね。
for文で配列のID情報を回してあげているだけです。

foreachでも出来るのですが、少し手間がかかると言うのと、forの方が気持ち軽いので私はこちらを推奨します。

「そもそもなんで投稿IDを指定してループさせたいんだ?」という突っ込みもあると思いますが、私の場合は「アイキャッチが無い投稿のIDを先に取得」⇒「上記方法でループして再生成」ということを行うために使いました。

ただでさえアイキャッチの再生成は重いのに、さらにforeachで全件まわすとサーバーが重くなるので、IDを取得、最低限の処理を行うためにこういう手順をとりました。

他にもニッチな需要があると思い紹介してみました。
参考になれば幸いです。

それでは次回の記事でお会いしましょう。

コメント

タイトルとURLをコピーしました