Publicité
En savoir plus
Ce module de recherche instantanée vous permet de rechechez en une seconde ce que vous avez besoin. L'ensemble des données du blog y sont répertoriés. De ce fait, vous trouverez les articles, dossiers, codes sources, découvertes et les professionnels du web de notre annuaire.
Grâce au système de catégorie et de tags de WordPress, il est très facile d’afficher du contenu autre que celui par défaut. Après les nombreux thèmes “Magazine” affichant les articles d’une certaine catégorie ou mot clés beaucoup de blog ont commencé à les utiliser. Mais certains utilisateurs de WordPress voudrons également créer cet effet magazine sur leur blog en affichant du contenu très spécifique. Dans ce billet nous allons voir comment créer un vrai module et comment l”insérer dans votre colonne latérale ou votre page d’accueil.
Nous allons utiliser, tout simplement, la fonction “Query_Post” de WordPress et spécifier les différents éléments qu’on a besoin. Munissez -vous de votre client FTP et d’un éditeur de texte. Préparez également les différentes catégories (le nom et l’identifiant dans certain cas) ou mots clés de votre blog (identifiant). Le titre et le contenu seront coupés pour ne pas abimé l’architecture graphique et l’ergonomie de votre blog.

Query_post permet de créer une boucle externe à la boucle d’origine de WordPress. Cette boucle personnalisé est plutôt intéressante puisqu’elle peut être insérée autant de fois que vous le souhaitez. Entièrement personnalisable il est très simple d’afficher n’importe quel contenu de votre blog et ainsi optimiser l’affichage et la navigation au sein de votre blog. Vos visiteurs seront ravis de pouvoir naviguer librement dans certaines sections. Query_post est surtout utilisé dans les thèmes “Magazine” ou encore dans des modules type “Featured” ou “Mise en avant“.
Ce module est vraiment simple et facile à insérer dans n’importe quel blog. Il vous suffit simplement de créer une catégorie ou mot clés (conseillé) pour ensuite afficher le contenu n’importe où sur votre blog. De plus, grâce à une simple fonction, il vous est possible de modifier le nombre de caractère à afficher de vos titres ou de la courte description de vos articles.
Plusieurs paramètres sont possibles et permettent ainsi un meilleur filtrage du contenu. Chaque paramètre peut être combiné, augmenter sans saisse l’affichage précis de caques éléments de votre blog. Dans cet article nous allons utiliser quelques variables simple et facile à intégrer.
- Affichage des catégories (cat)
- Affichage des mots clés (tag)
- Utiliser la première partie de l’article (globale more)
- Un extrait du titre et du contenu (strlen et content_rss)
- Boucler la boucle (reset_query)
- L’ordre d’affichage des articles (orderby)
Mettons-nous au développement de votre module. Nous allons d’abord créer la boucle comprenant les informations des catégories ou mots clés à afficher. Pour afficher le contenu d’une seule catégorie il vous suffit de coller le code suivant en modifiant bien l’identifiant de votre catégorie et le nombre d’article à afficher. Le titre et le contenu seront complet. Pour trouver l’identifiant de vos catégories, allez dans l’onglet “Catégories” de votre administration et survoler celle que vous souhaitez utiliser. À la fin de l’adresse affichée vous trouverez l’identifiant de votre catégorie (cat_ID=149)
<div class="featured">
<?php query_posts('cat=149&showposts=2&orderby=rand'); global $more; $more = 0; ?>
<?php while (have_posts()) : the_post(); ?>
<p class="titre">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php the_title(); ?>
</a>
</p>
<p class="content">
<?php the_content(); ?>
</p>
<?php endwhile;?>
<?php wp_reset_query(); ?>
</div>
Pour afficher plusieurs catégories il vous suffit d’ajouter une virgule et d’insérer un nouvel identifiant d’une autre catégorie. Remplacez la ligne contenant la fonction “query_post” par celle-ci.
<?php query_posts('cat=75,149&showposts=2&orderby=rand');?>
Maintenant, nous allons afficher les articles contenant certains mots clés, un seul ou plusieurs. Grâce aux paramètres de base de WordPress nous pouvons afficher les articles contenant un ou plusieurs mots clés.
<div class="featured">
<?php query_posts('tag=infos&showposts=2&orderby=rand');?>
<?php while (have_posts()) : the_post(); ?>
<p class="titre">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php the_title(); ?>
</a>
</p>
<p class="content">
<?php the_content(); ?>
</p>
<?php endwhile;?>
<?php wp_reset_query(); ?>
</div>
Pour afficher plusieurs mots clés il vous suffit d’ajouter une virgule et d’insérer un autre mot clés. Remplacez la ligne contenant la fonction “query_post” par celle-ci.
<?php query_posts('tag=infos,astuces&showposts=2&orderby=rand');?>
Après avoir vu comment afficher les articles de vos catégories et de vos mots clés, nous allons voir comment combiner simplement ces deux paramètres et ainsi optimiser l’affichage de certains contenus. Nous allons afficher les articles de la catégorie “75″ et “149″ contenant les mots clés “infos” et “astuces”. Remplacez la ligne contenant la fonction “query_post” par celle-ci.
<?php query_posts('tag=infos,astuces&cat=75,149&showposts=2&orderby=rand');?>
Optimiser vos titres pour ne pas heurter l’ergonomie de votre blog est assez facile en fait. Au lieu d’afficher le titre et le contenu au complet, nous allons ajouter un code “coupant” le titre et le contenu après un certain nombre de caractère. Pour le contenu de l’article nous allons simplement utiliser la fonction “content_rss” et spécifier le nombre de mots à afficher.
<div class="featured">
<?php query_posts('tag=infos,astuces&cat=75,149&showposts=2&orderby=rand');?>
<?php while (have_posts()) : the_post(); ?>
<p class="titre">
<a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
<?php if(strlen($post->post_title)>40){echo substr($post->post_title,0,40).'...';}else{the_title();} ?>
</a>
</p>
<p class="content">
<?php the_content_rss('', TRUE, '', 60); ?>
</p>
<?php endwhile;?>
<?php wp_reset_query(); ?>
</div>
Après le développement d’une tel module, il faut également songer à son apparence et bien évidemment à son emplacement. Concernant son emplacement je ne peux que vous conseillez de faire en fonction de votre thème.
.featured {
width:400px;
height:auto;
color:#598494;
font-family:Arial;
font-size:11px;
text-align:left;
}
.titre {
margin: 0px;
font-style:normal;
font-size:20px;
}
.titre a, .titre a:visited {
color:#4e6c78;
text-decoration:none;
font-size:20px;
}
.titre a:hover, .titre a:active {
color:#6f94a2;
text-decoration:none;
font-size:20px;
}
10 commentaires !
Philippe Launois says:
sept 8, 2009
Pour ce que j’ai pu tester de cette fonction, le problême est que
ne marche pas correctement ducoup lorsque l’on a plusieurs loop, le résultats de la première loop impactent les résultats de la seconde.
Pour eviter cela il vaut mieux utiliser ce code:
query('vos filtres');$ids = array();
while ($f->have_posts()) : $f->the_post(); ?>
qui recrée à chaque fois une nouvelle fonction.
Philippe Launois says:
sept 8, 2009
manque un bout de code :?
$f = new WP_Query();$f->query('showposts=5&offset=1&cat=-172,-173');$ids = array();
while ($f->have_posts()) : $f->the_post();
Ça devrait être mieux
Guilhem says:
sept 8, 2009
Merci beaucoup de ton aide.
Je suis en train de “jouer” avec ton code et de le modifier pour donner à ma page d’accueil exactement la forme qui m’intéresse : genre page d’un journal.
J’ai donc créé une division verticale avec, à gauche un article d’accueil sur toute la hauteur, et à droite j’insère ta boucle avec plusieurs sous divisions.
Pour la première (en haut et à droite donc), je voudrais insérer un résumé d’un article qui me servait de page d’accueil mais que je veux que mes visiteurs puissent lire car il explique le fond de mon sujet. Comment appeler un article spécifique avec ta boucle query ?
Ensuite, je vais mettre ta boucle d’appel d’une catégorie.
Ensuite je vais mettre un élément html pour présenter le livre du mois et, enfin, ta boucle de tag.
Pour donner un aspect “journal” que me conseilles-tu comme encadrement ?
Encore merci de penser aux dummies du php.
Guilhem says:
sept 8, 2009
Encore une petite question.
Comment récupérer la fonction affichant les titres des derniers articles publiés qui sont proposés en widgets ?
Merci.
Etienne says:
sept 9, 2009
Merci pour ce tuto génial je vais tester ca de suite. :)
Ludo says:
fév 14, 2010
Salut
et si on ne souhaite pas afficher une catégorie en particulier, comment fais-t-on ? Moi je souhaite exclure 2 catégories de ma partie “articles récents”, rien n’y fait, j’essaie à coup de requêtes sql, ça marche pô :?
Philippe Launois says:
fév 15, 2010
dans les filtres de ta loop il te suffit de mettre un – devant les catégories que tu veux exclure.
Ludo says:
fév 15, 2010
merci beaucoup !!!!
pourtant c’est ce qui était mis de base mais ça ne marchait pas avec la variable donnée, j’ai mis direct l’identifiant des catégories !
Thx !
jdoubard says:
avr 7, 2010
Bonjour, je n’arrive pas trouvé un code script par exemple “query_posts()” pour affichage des articles par chaque ordre date sur la page d’accueil. L’affichage souhaité final est :
Dimanche 4 avril 2010
Titre 1
Titre 2
Titre 3
Titre 4
Titre 5
etc…
Samedi 3 avril 2010
Titre 1
Titre 2
Titre 3
etc…
Vendredi 2 avril 2010
Titre 1
Titre 2
Titre 3
Titre 4
etc…
La boucle est surement très simple mais je n’y arrive pas trouvé un code php ! Merci beaucoup de votre aide ;)
Ji says:
juin 6, 2011
Bonjour,
j’aimerais savoir comment récupéré l’id de la catégorie en cours (dans le but d’afficher les 3 derniers articles de la catégorie en cours par exemple)
merci :p
Qu'est-ce que vous en pensez ? :)