web-dev-qa-db-fra.com

Afficher un article par auteur et limiter l'interrogation à 8 articles

Je veux montrer 8 produits récents de plusieurs auteurs sur la page d'accueil. Besoin d'afficher 1 produit récent par auteur.

Actuellement, j'utilise une requête de base wp pour afficher les 8 derniers produits.

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

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

Quel est le meilleur moyen d'y parvenir?

1
Erik

Je pense que vous pouvez obtenir cet effet en regroupant la requête par ID d’auteur, ce qui nécessitera un filtre ( principalement cribbed à partir du Codex ):

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

Si vous avez moins de 8 auteurs, cela ne fonctionnera pas. (Vous obtiendrez un nombre de résultats égal à votre nombre d'auteurs.) Si tel est le cas, vous aurez besoin d'une logique beaucoup plus compliquée et d'un code beaucoup plus compliqué.

5
s_ha_dum