Afficher les articles de vos catégories ou mots clés !

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.

Description

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.

Les paramètres

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)

Afficher les articles des catégories

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)

[php]

[/php]

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]

[/php]

Afficher les articles des mots clés

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.

[php]

[/php]

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]

[/php]

Ajouter les paramètres

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]

[/php]

Optimiser l’affichage du titre et du contenu

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.

[php]

[/php]

Personnaliser votre module

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.

[css]
.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;
}
[/css]

Allez plus loins

12 réponses

  1. 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.

  2. 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

  3. 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.

  4. 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ô :?

  5. 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 ;)

  6. 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

  7. Bonjour Philippe,
    je vous remercie pour ces tutos parfais , j’aimerais demander un tout petit aide svp.
    j’ai créer mon propre thème wordpres (html/css) et j’ai rencontrer un petit problème je vais essayer de vous mettre au point :
    je compte creer un site semblable a https://msn.com mon site vas etre devisé a plusieurs divisions(rubriques) qui sont: news, divertissement, santé, lifestyle …etc.
    c’est a dire que je souhaite réaliser un premier groupe d’Article, et un deuxieme groupe, un troixieme …etc . mais afficher tous les groupes sur la même page et que chaque groupe appartiens a une rubrique(niche).
    je me demande si ce back office de wordpress peut gérer le contenue de chaque rubrique séparement ? avec la boucle wordpress //Post Content sorry, no posts found ! ou autres boucles,
    j’obtien un mélange d’articles : c’est a dire que mon dernier article écrit se place directement sur la premiere rubrique qui es news , alors que c’est un article qui appartiens a lifestyle par exemple .
    j’ai tombé sur cette page https://codex.wordpress.org/fr:La_Boucle
    je pense que la partie boucles multiples peut résoudre mon problème !
    j’espere que vous comprenez ce que j’essaie de dire

    merci par avance pour votre réponse,
    Cordialement,

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *