Le Loop WordPress et la requète query_post():

Permet d’afficher le/les posts.

<?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
        <!-- do stuff ... -->
    <?php endwhile; ?>
<?php endif; ?>


The have_posts() simply calls into $wp_query have_posts() which checks a loop counter to see if there are any posts left in the post array.
And the_post() calls $wp_query the_post()

Avant le Loop, on peut utiliser la fonction query_posts()

Exemple: Selectionne les posts de la catégorie 8 uniquement.

//The Query

<?php query_posts('<span style="color: #339999;">cat=8</span>'); ?>

ou

<?php query_posts('<span style="color: #339999;">category_name=categorie1</span>'); ?>

//The Loop

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

Exemple: Exclure les posts d’une catégorie.

//The Query

<?php query_posts('<span style="color: #339999;">cat=-3</span>'): ?>

//The Loop

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

Exemple : Afficher un article particulier grâce à son id

Ici, 4 étant l’ID du post

//The Query

<?php query_posts('<span style="color: #339999;">p=4</span>'); ?>

//The Loop

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

Exemple : Afficher une page en particulier grâce à son id

Ici, 6 est l’ID du post

//The Query

<?php query_posts('<span style="color: #339999;">page_id=6</span>'); ?>

//The Loop

Le Loop ici

Exemple : Gère le nombre posts à afficher

Taper 10 pour afficher 10 posts. Taper -1 pour afficher tous les posts

//The Query

<?php query_posts('<span style="color: #339999;">posts_per_page=10</span>'); ?>

//The Loop

Le Loop ici

Exemple : Ordre ascendant et catégorie 6 uniquement

//The Query

<?php query_posts('<span style="color: #339999;">order=ASC&amp;cat=6</span>'); ?>

//The Loop

Le Loop ici

Autres Exemples:

query_posts('cat=2,6,17,38');// 2 OU 6 OU 17 OU 38
query_posts(array('category__in' => array(2,6)));//idem 2 OU 6
query_posts(array('category__and' => array(2,6)));// 2 ET 6
query_posts(array('category__not_in' => array(2,6)));
query_posts(array( 'post_type' => array('post', 'movie') ) );
query_posts('author=1&amp;post_type=page&amp;post_status=publish&amp;orderby=title&amp;order=ASC');
query_posts('monthnum=12&amp;day=20');// Affiche les posts du 20 décembre uniquement
query_posts('posts_per_page=5&amp;offset=1');Affiche 5 posts à la suite du plus récent.
query_posts('cat=3&amp;year=2010');Dans la catégorie 3 de l'année 2010

Autres manières d’utiliser query_posts:

///////////////////////////

query_posts(array(
 'cat'      => 22,
 'year'     => $current_year,
 'monthnum' => $current_month,
 'order'    => 'ASC',
));

///////////////////////////

//The Query

<?php
$query = 'posts_per_page=10';
$queryObject = new WP_Query($query);

// The Loop

if ($queryObject->have_posts()) {
	while($queryObject->have_posts()) {
		$queryObject->the_post(); ?>
	<h2><?php the_title(); ?></h2>
<?php
		the_content();
	}
}
?>

////////////////////////

//The Query

<?php query_posts($query_string . '&amp;cat=-3,-8'); ?>

//The Loop

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<!-- Display the Title as a link to the Post's permalink. -->
<a href="<?php the_permalink(); ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?><a>

<!-- Display the date (November 16th, 2009 format) and a link to other posts by this posts author. -->
<?php the_time('F jS, Y') ?> by <?php the_author_posts_link(); ?>
    <?php the_content(); ?>

Posted in <?php the_category(', '); ?>

 <?php endwhile; else: ?>

Sorry, no posts matched your criteria.

<?php endif; ?>

Si un problème survient avec la pagination: