web-dev-qa-db-ja.com

著者ごとに1件の投稿を表示し、8件の投稿にクエリを制限する

私はフロントページに複数の作家からの8つの最近の製品を見せたいです。著者ごとに1の最近の製品を表示する必要があります。

現在私は最近の8製品を表示するために基本的なwpのクエリを使用しています。

$args = array (
'post_type'              => array( 'product' ),
'posts_per_page'         => '8',
'order'                  => 'DESC',
'orderby'                => 'date',
);

// The Query
$query = new WP_Query( $args );

これを達成するための最良の方法は何ですか?

1
Erik

私はあなたがフィルタを必要とする作者IDによってクエリをグループ化することによってあなたがこの効果を達成することができると信じています( 大部分はCodex から切り取られます):

function my_posts_groupby($groupby) {
    global $wpdb;
    $groupby = "{$wpdb->posts}.post_author";
    return $groupby;
}
add_filter( 'posts_groupby', 'my_posts_groupby' );

あなたが8人以下の著者を持っているなら、しかしながら、これはうまくいきません。その場合は、はるかに複雑なロジックとはるかに複雑なコードが必要になります。

5
s_ha_dum