[WordPress]各カテゴリー最新1件の投稿を取得する
って記事を書いているときに
そういえば昔投稿タイプで似たようなことやったな〜
って思い出してまだQiitaに残してなかったので残す。
gistには残していたけど
最新の投稿のつけあわせをpost_dateでやってたんでIDでするようにした。
通常運営ならpost_dateで問題ないと思うけども
処理で一度に大量の投稿つくったりコピーしたりするとあれなんで。
ちなみに元々参考にしていた記事は
Show latest Posts from each Post Type
$query = <<<SQL
SELECT tmp.ID, tmp.post_type, tmp.post_date FROM
(
SELECT ID, post_type, max(post_date) AS pd FROM wp_posts
WHERE post_status = %s
AND post_type IN (%s, %s)
GROUP BY post_type
) AS post
INNER JOIN wp_posts AS tmp
ON tmp.post_type = post.post_type
AND tmp.ID = post.ID
ORDER BY post.pd DESC
SQL;
$ret = $wpdb->get_results($wpdb->prepare($query, ['publish', 'post', 'any']), ARRAY_A);
これで投稿IDと投稿タイプと公開日が取れるので
あとはよろしくやってほしい。