wp_list_pluck / post__not_in

情報を追記している場合はありますが、古い情報を訂正はしていませんので、公開年月日を参照してください。プラグイン・タグ、いずれもワードプレス・PHPのバージョン等によって動作しない場合もあります。

アーカイブのトップに、例えば最新3件を大きめに表示し、続きに5件を普通に表示、2ページ目からは5件ずつ表示、というような仕様。
1つ目のWP_Queryで3件、この3件のIDを取得して、2つ目のWP_Queryはpaged でpost__not_in に最初の3件のIDを入れたい。

1つ目は!is_paged() の条件付きなので、この中で取得すると2ページ目移行に持続できないので、さて、どうしよう?
色々やってみたけど、結局、割と簡単に取得できた。

$latest = get_posts(‘category_name=xxx&numberposts=3’); $ids = wp_list_pluck( $latest, ‘ID’ );

で、

‘post__not_in’ => $ids,

wp_list_pluckで関連記事を表示する方法を紹介したことがあるが、こういう使い方もあるのね、と。