Comment afficher des articles WordPress par catégorie grâce à la requête WP_Query
Il se peut qu’à un endroit particulier de votre site, par exemple dans le footer, ou sur une page en particulier, vous vouliez afficher des articles WordPress par catégorie, soit d’une seule catégorie soit de plusieurs catégories données.
Il suffit pour cela, dans le fichier php concerné, d’utiliser la requête WP_Query, qui introduit une boucle et admet un certain nombre d’arguments. Par exemple, si vous voulez afficher les titres et les liens de.. disons… 15 articles tirés aléatoirement de la catégorie dont l’id est égal à 1 , vous obtiendrez la chose par le code suivant :
———————————–
<?php $the_query = new WP_Query('cat=1&showposts=15&orderby=rand'); while ($the_query->have_posts()) : $the_query->the_post(); ?> <a href="<?php the_permalink() ?>"> - <?php the_title(); ?></a> <?php endwhile;?>
———————————–
. La catégorie est notée par cat. Vous pouvez renseigner l’argument par l’id d’une catégorie (cat=1) ou plusieurs id, séparés par une virgule : cat=1,3. Vous pouvez aussi exclure une catégorie en plaçant le signe – devant : cat=-1 signifie que toutes les catégories seront comprises sauf celle dont l’id est égal à 1.
. Vous pouvez également, au lieu de préciser l’id de la catégorie, donner directement son nom : l’argument n’est alors plus cat mais category_name. Si le nom de la catégorie est par exemple “Android”, ça donne :
———————————–
$the_query = new WP_Query('category_name=Android&showposts=15&orderby=rand');
———————————–
Vous pouvez là aussi préciser plusieurs noms de catégories, séparés par des virgules, par exemple : category_name=Android,Worpress
D’autres modes de tris sont par ailleurs possibles, par id de l’auteur (author=1), nom de l’auteur (author_name=toto), ou encore, si vous avez indiqué des mots-clés pour vos articles, par mot-clé (tag=android) ou id de mot-clé (tag_id=1).
Avec l’argument showposts vous précisez le nombre d’arguments que vous voulez afficher, ici 15.
orderby précise la méthode de tri; “rand” signifie aléatoire (random) mais l’argument accepte bien d’autres valeurs comme date, title, author…
Par ailleurs order=ASC définit un affichage dans l’ordre chronologique (le dernier en dernier) et order=DESC dans l’ordre inverse (le dernier en premier).
Consultez ici un tableau assez complet de tous les arguments possibles.
Si vous avez beaucoup de choses à préciser, vous pouvez ranger ces arguments dans un tableau et appeler ensuite le tableau :
———————————–
$args= array( 'showposts' => 15, 'cat' => 1, 'orderby' => 'rand' ); $the_query = new WP_Query($args);
———————————–
Une fois ces arguments précisés, le programme joue la boucle que vous avez indiquée. Et voilà.