Nous allons maintenant revenir sur la partie front et parler d'un objet essentiel dans WordPress : l'objet WP_Query. Cette class est utilisée en interne pour récupérer les articles à afficher dans la boucle. Mais vous pouvez aussi l'utiliser dans votre thème pour récupérer une liste d'article en fonction de critères précis.

On construira nos objets en passant en paramètre un tableau contenant les critères de notre recherche.

$query = new WP_Query([
  'post__not_in' => 1,
  'post_type' => 'post',
  'posts_per_page' => 3,
  'orderby' => 'rand',
  'tax_query' => [
    [
      'taxonomy' => 'sport',
      'terms' => [1, 10, 3]
    ]
  ],
  'meta_query' => [
    [
      'key' => 'is_sponso',
      'compare' => 'NOT EXISTS'
    ]
  ]
]);

Il sera ensuite possible de récupérer les enregistrements en utilisants les méthodes have_posts() et the_post().

while ($query->have_posts()) : $query->the_post();
?>
  <div class="col-sm-4">
    <?php get_template_part('parts/card', 'post'); ?>
  </div>
<?php endwhile; wp_reset_postdata(); ?>

On fera en revanche très attention à "nettoyer" les modifications opérées par the_post() gràce à la méthode wp_reset_postdata() afin d'éviter les conflits avec les autres boucles.