web関連

【wordpress】件数分記事を先に取得して、逆順で出力する方法

【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()」って聞いてたからあまり触れたことないけど柔軟性高そう 知らんけど