私がやろうとしていることは、16人の異なる作者からの16の最新の投稿を得ることです。言い換えれば、最新の投稿は16個ありますが、1人の投稿者がこのページに1つ以上投稿することはありません。
私が考えたやり方は、すべての作者をループして重複を取り除き、それを16に制限してforループごとに投稿を生成することですが、これは非常に重い作業になるでしょう。サーバ。
助言がありますか?
カスタムSQLクエリを使用して、固有の作者を含む最新の16の投稿IDを取得します。
$post_IDs = $wpdb->get_col( "SELECT ID FROM $wpdb->posts WHERE post_type = 'product' AND post_status = 'publish' GROUP BY post_author ORDER BY post_date DESC LIMIT 16" );
それから引数post__in
を使って新しいクエリを起動します。
$recent_posts = new WP_Query( array( 'post__in' => $post_IDs, 'post_type' => 'product' ) );