web関連
【wordpress】件数分記事を先に取得して、逆順で出力する方法
ちょっとした案件で記事3件先に取得してそれを逆順から出力したかった時の備忘録
get_posts()でいけた
<?php
// 先に最新3件取得
$my_posts = get_posts('post_type=post&posts_per_page=3');
// array_reverse()関数で配列を逆順にする
$reverse_post = array_reverse($my_posts);
// 1つずつ出力
foreach($reverse_post as $post): setup_postdata($post);
?>
<h1><?php the_title(); ?></h1>
<?php
endforeach;
wp_reset_postdata();
?>
「get_posts()」と配列を逆順にする「array_reverse()」関数を使ったら実装できた
普段「WP_Query()」を使ってループさせてたけどオブジェクトだから「array_reverse()」が効かなかったので「get_posts()」で記事情報取得
参考
▼WordPressの記事取得で良く見るforeach(ループ処理)について解説
https://ht79.info/2013/08/19/wordpress-foreach/
▼array_reverse() – 配列を逆順にする
https://syncer.jp/Web/PHP/Reference/Function/array_reverse/
「get_posts()」って「WP_Query()」より取得できる情報が少ないから使うなら「WP_Query()」って聞いてたからあまり触れたことないけど柔軟性高そう
知らんけど