Je cherche à créer un flux de site large sur mon site et à avoir plusieurs types de publication personnalisés. Je voudrais afficher disons 3 messages d'au moins 3 types de messages différents. Je peux obtenir les 10 derniers messages dans chaque type de message et les 10 derniers au total, mais j'aimerais préciser que je n'en reçois que 3 pour que les choses soient régulières. Est-ce la meilleure façon de le faire faire 3 requêtes différentes et ensuite les fusionner? Je comprends comment faire cela séparément, mais je veux qu'ils soient tous intégrés et triés par horodatage. Aucune suggestion?
Cette méthode utilise un compteur et 1 requête. Seules 3 publications de chaque type de publication peuvent être affichées.
$args = array(
'post_type' => array( 'type1', 'type2', 'type3' ),
'posts_per_page' => -1
);
$myquery = new WP_Query( $args );
$type1 = 0; $type2 = 0; $type3 = 0; $count = 0;
while ( $myquery->have_posts() ) : $myquery->the_post();
if ( $post->post_type == 'type1' ) $type1++;
if ( $post->post_type == 'type1' && $type1 > 3 ) continue;
if ( $post->post_type == 'type2' ) $type2++;
if ( $post->post_type == 'type2' && $type2 > 3 ) continue;
if ( $post->post_type == 'type3' ) $type3++;
if ( $post->post_type == 'type3' && $type3 > 3 ) continue;
$count++; if ( $count > 9 ) continue;
// Do Stuff
endwhile;
Ce n'est peut-être pas la meilleure solution si vous avez un très grand nombre de messages, car tous les messages seront parcourus et si le nombre est supérieur à 3 pour le type de message donné, il reviendra au début de la boucle.