- Principale
- on peut remodeler ce mécanisme avec « l’action-hook »pre_get_posts (https://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts)
- secondaire
La boucle principale
La boucle principal est celle que nous retrouvons dans les fichiers fichiers qui affiche les élément singuliers, comme, ‘page.php’, ‘single.php’, etc.. ainsi que pour les éléments archives comme « archive.php », « category.php ». Elle correspond à la requête du fichier où elle se trouve.
<?php if ( have_posts() ) : ?> <?php while ( have_posts() ) : the_post(); ?> <?php the_title(); ?> <?php the_content(); ?> <?php endwhile; ?> <?php endif; ?>
Remodeler la boucle principale
Il est possible de transformer la requête implicite qui est faite dans les fichier cités précédemment. Pour se faire nous pouvons ajouter un code comme celui ci-dessous au fichier function.php.
<?php function exclude_category( $query ) { if ( $query->is_home() && $query->is_main_query() ) { $query->set( 'cat', '-1,-1347' ); } } add_action( 'pre_get_posts', 'exclude_category' );
Codex : Plugin API/Action Reference/pre get posts
La boucle secondaire
TODO : Remetre à jour la version complète de la boucle complète avant mise en ligne
La boucle secondaire peut s’exécuter à peu près n’importe où. Elle se fait en 2 parties. Dans un premier temps il nous faut le tableaux qui contiendra tous les paramètres qui son nécessaire à notre requête. La requête se fait en créant une nouvelle istance de l’objet WP_Query avec le tableau de paramètres. Enfin, il ne nous reste plus qu’a exploité cette requête en utilisant une boucle classique préfixé par l’instance de l’objet.
<?php $arg = array('post_type' => 'post',); $my_query = new WP_Query( $arg ); if ( $my_query->have_posts() ) { while ( $my_query->have_posts() ) { $my_query->the_post(); the_content(); } } wp_reset_postdata();
Github Mark Luetke : WordPress Query Comprehensive Reference
Utilider setup_postdata() pour afficher une liste de posts
<?php $list = array( 100, 101, 102 ); foreach ( $list as $element ) { global $post; $post = get_post( $element ); setup_postdata( $post ); the_title( '<h1>', '</h1>' ); the_content(); } wp_reset_postdata();
Codex : Function Reference/setup postdata