web-dev-qa-db-fra.com

Comment afficher les messages de plusieurs types de messages en une seule boucle? Et affichez-les séparément sur le même modèle

J'ai quatre types de post

  1. Des produits
  2. Bannières
  3. Portefeuille
  4. Témoignages

Et ils affichent tous leurs publications sur le même modèle de page d'accueil (index.php).

Actuellement en utilisant ci-dessous requête pour obtenir des messages de différents types de message.

<?php
query_posts(
    array(
        'post_type' => 'work_projects',
        'work_type' => 'website_development',
        'posts_per_page' => 100
    )
);
if ( have_posts() ) : while ( have_posts() ) : the_post();

    the_post_thumbnail($size);
    the_title();
    the_content();

endwhile; endif;

Mais mon problème est que je dois mettre plusieurs boucles query_post sur la même page. J'ai aussi cherché des solutions sur Google et trouvé des réponses sur Stack Overflow également. Mais pas capable de comprendre comment les utiliser avec the_title(), the_content() et the_post_thumbnail().

1
Soeb Safi

post_type accepte un tableau. Avez-vous essayé d'utiliser WP_Query avec un tableau?

$args = array( 
         'post_type' => array( 'product', 'banner', 'portfolio', 'testimonial'),
         'post_status' => 'publish',
         'posts_per_page' => 100
    );
    $the_query = new WP_Query( $args );
3
shanebp

La meilleure pratique consiste à utiliser quatre requêtes personnalisées différentes et à les parcourir séparément en utilisant wp_query

Alors, voici un exemple:

<?php
$custom_query = new WP_Query( 
    array(
        'post_type' => 'work_projects', 
        'work_type' => 'website_development', 
        'posts_per_page' => 100
    ) 
);
if ( $custom_query->have_posts() ) : while ( $custom_query->have_posts() ) : $custom_query->the_post();

    the_post_thumbnail($size);
    the_title();
    the_content();

endwhile; endif; wp_reset_query();
?>

Ensuite, vous répétez le processus pour chaque type de publication en remplaçant "work_projects" par le nom du type de publication suivant.

Je ne suis pas sûr de ce que 'type_travail' est dans ce scénario, mais je l'ai simplement réintégré dans la requête car vous l'aviez déjà là.

1
Industrial Themes