Jan 13, 2016

WordPress-astuce la base une loop wp_query

Pour afficher un ou pluieurs articles sous wordpress on utilise une boucle « classique » du type :

 

<?php
   if(have_posts()) : 
      while(have_posts()) : 
         the_post(); 
?>

         <h1><?php the_title() ?></h1>
         <div class='post-content'><?php the_content() ?></div>
      
<?php
      endwhile;
   else : 
?>

      Oops, there are no posts.

<?php
   endif;
?>

Seulement voilà cette boucle est simple…trop simple sans doute ou du moins un peu limitée. Si on veut aller un peu plus loin on peut remplacer cette boucle par une boucle wp-query qui permettra  d’ajouter des arguments spécifiques et cibler par exemple une catégorie précise, un nombre de post par page, une taxo, un terme de taxo et j’en passe…

En clair et pour faire court la boucle WP_Query est LA SOLUTION.

 

Juste pour mémoire un exemple de base pour une loop de template page ultra simplifiée en WP_QUERY :

ici il s’agit d’une boucle qui va sélectionner les articles d’une custom-post-type nommé « produit » suivi de la définition de la quantité d’article par page ici 10.

$loop = new WP_Query( array( 'post_type' => 'produit', 'posts_per_page' => 10 ) );
while ( $loop->have_posts() ) : $loop->the_post();
the_title();
echo '<div>';
the_content();
echo '</div>';
endwhile;

 

Voici une boucle plus sympa :

<!-- LA BOUCLE -->
<?php
$last = new WP_query("post_type=projet&showposts=10");
if($last->have_posts()) : while($last->have_posts()) : $last->the_post();
?>
<!-- -->
<article id="bloc" class="col-2" style="background-color:#FFFFFF;">
<div class="main " style="left:10px;right:10px;top:10px;bottom:10px;outline:1px solid rgba(0,0,0,0.1);">

<div class="pic-h2"> <?php the_post_thumbnail( 'large' ); ?> </div>
<!-- etiquette -->

<?php if( get_field('pastille') ): ?>
<div id="" class="pastille"><div class="main"><strong><?php the_field('pastille'); ?></strong></div></div>
<?php endif; ?>

<!-- etiquette -->
<div class="info">

<span class=" center-v">
<h1 class="title center-h">
<a href="<?php the_permalink(); ?>"> 
 <?php the_title(); ?>
</a>
</h1>
<span class="taxo"><?php the_terms( $post->ID, 'type', '' ); ?></span>
<!-- <div class="content">
<?php the_content(); ?>
</div> -->
</span>

</div>
</div>
</article>

<!-- -->
<?php
endwhile; endif;wp_reset_query();
?>
<!-- FIN DE LA BOUCLE -->

 Je ne saurais trop vous conseiller le très bon article sur les bases des loop wordpress du site Smashing magazine (tout y est expliqué clairement et précisément)

https://www.smashingmagazine.com/2013/01/using-wp_query-wordpress/

Enfin pour approfondir le sujet et pousser la boucle WP QUERY au maximum de ses capacités je vous conseille le meilleur article trouvé sur le sujet :

 

http://www.billerickson.net/code/wp_query-arguments/

 

80