ちょっとわかりにくいタイトルで申し訳ありません。
何がしたいかと言うと、特定の投稿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を取得、最低限の処理を行うためにこういう手順をとりました。
他にもニッチな需要があると思い紹介してみました。
参考になれば幸いです。
それでは次回の記事でお会いしましょう。
コメント