Query Inside Post – Plugin WordPress pour insérer facilement une boucle dans un billet

Query Inside Post (QIP) est un plugin qui va vous permettre d'insérer une boucle personnalisée à l'intérieur d'un billet via un tout petit bout de code !

A qui s'adresse "Query Inside Post" ?

Principalement aux personnes qui font régulièrement des listings de leur billets. Le coté pratique, c'est que l'on va pouvoir créer un listing personnalisé très facilement.
Edit 22/04/08: permet aussi d'afficher une liste de liens n'importe où dans votre thème !

Installation

  1. Téléchargez le plugin
  2. Uploadez le dossier du plugin dans le dossier /wp-content/plugins/ de votre blog
  3. Activez le plugin depuis l'interface d'administration de votre blog (Plugins)

Voilà c'est installé !

Utilisation

Commencez un nouveau billet, et à l'endroit où vous voulez insérer le listing personnalisé, utilisez le code suivant:

Il vous faut remplacer les attributs selon ce qui vous conviens. Par exemple, pour afficher une liste des 5 derniers billet contenant le tag google, placez le code suivant:

Simple non ?

Et si vous voulez afficher une liste directement dans votre thème:

<?php echo qip($request,$beforelist,$afterlist,$beforeitem,$afteritem); ?>

Donc par exemple, pour afficher la liste des 10 derniers billets de la catégorie 5 dans une liste ordonnée:

<?php echo qip('cat=5&showposts=10','<ol>','</ol>'); ?>

Voici la liste des attributs possible (voir aussi query_posts()):

Par défaut, affiche la liste des 5 derniers billets sous forme de lien.

)
  • afterlist: </ul> par défaut. Permet de préciser la tag se trouvant à la fin de la liste (ex:

    Chaque attribut est facultatif.
    On peut évidement cumuler les attributs (ex:

    )
    /! N'utilisez pas l'attribut "cat" en même temps que l'attribut "tag" (bug wordpress), c'est ou l'un ou l'autre

    Vous pouvez tout à fait insérer plusieurs listes, avec des paramètres différents, dans le même billet.

    Quelques exemples

    Par exemple, vous administrez un blog "People" et vous voudriez faire un article résumé sur la "Star Academy" (oh, le beau sujet !). Et évidement vous voudriez afficher tous vos articles parlant de Bertrand et de Lucie ...

    Tous connaitre sur Bertrand:
    
      Et tout sur Lucie:
        Vive la Star Academy

        Enfin voilà, vous avez compris le principe !

        Conclusions

        Si vous utilisez vraiment beaucoup de listes dans vos billets, vous devriez envisager d'utiliser le plugin wp-cache pour WordPress. Car celà engendre pas mal de requêtes qui peuvent se révéler gourmande en ressources CPU.

        Vous pouvez évidement personnaliser la manière dont s'affiche la liste en éditant le fichier qip.php. Gardez juste en tète que ça affectera toutes vos listes !

        Je n'ai pas vraiment le temps ni les moyens d'approfondir ce plugin, mais si un développeur motivé passe dans le coin, voici les fonctions qu'il serait bon d'ajouter:

        • ajout d'une page d'administration
        • possibilité de créer plusieurs templates de liste (via la page administration)
        -----
      • Articles relatifs

        1. 17/03/2008 à 00:33 | #1

          J’ai un problème avec l’ouverture du fichier qip.zip.

          (j’ai un avertissement comme quoi le fichier n’est pas valide)

        2. 19/04/2008 à 17:32 | #2

          Je viens d’installer le plugin et en le testant, j’ai constaté qui si j’affichais une liste d’article, alors les liens d’édition et de commentaire de en bas de l’article pointent sur le dernier article de la liste et non sur l’article contenant cette liste (si vos tests ont été fait avec le skin de ce site, il n’ont effectivement pas pu mettre ce problème en lumière puisque vous avez placé ces liens en haut de message).

          Apparemment l’appel à sc_wlist écrase la variable globale $post à laquelle il est fait référence quand on appelle la fonction the_post().

          Une façon (pas forcément la plus élégante mais bon, ça a le mérite de marcher) semble être de sauvegarder la valeur de cette variable en début de fonction et la remettre en fin de fonction.

          Ce dui donne :

          - en début de fonction (avant le extract), ajouter :

          global $post;
          $tempPost = $post;

          - en fin de fonction (avant le return), ajouter :

          $post = $tempPost;

          De cette manière on peut continuer à afficher les liens en bas des articles.

        3. k-ny
          22/04/2008 à 12:52 | #3

          @StefB23
          Ton problème est résolu ?

          @Darathor
          Ah décidément, je pensais ètre débarrassé de ce bug, bon j’intègre ta « bidouille » dans la prochaine mise à jour (qui va arrivé dans la journée ou demain). Merci ;)

        4. wahou
          30/04/2008 à 01:29 | #4

          Super ton plugin merci !
          C’est exactement ce dont j’avais besoin.
          Bonne continuation

        5. 02/05/2008 à 15:13 | #5

          Bonjour, votre plugin est très efficace et va peut-être me permettre de résoudre mon problème sur la page d’accueil de mon site.
          Je cherchais effectivement une solution pour afficher plusieurs posts sur un seul post (accueil). L’utilisation d’une liste et de tag est très pratique et judicieuse. Par contre dans les attributs disponibles (tag, author…) comment peut-on inclure au niveau de la liste un résumé de l’article avec par exemple 125 caractères + « … » + éventuellement une vignette de la photo de l’article.
          Avez-vous une idée ?

          Par avance merci

        6. k-ny
          02/05/2008 à 17:07 | #6

          @sébastien

          Pour afficher du contenu et +, il faut que tu modifie légèrement le plugin.

          Dans la fonction « qip », modifie la ligne :

          $retour .= $beforeitem.'<a href ...

          Il te suffit d’utiliser les marqueurs que tu veux: http://codex.wordpress.org/fr:Marqueurs_de_Modele

          Attention toutefois qu’il s’agit d’utiliser les marqueurs pour qu’ils renvoient une chaine et non un « echo » ;)

        7. 09/06/2008 à 17:07 | #7

          Votre plug-in permet-il de rechercher des images dans les posts et tout le contenu d’un site web?

        8. jf
          16/07/2008 à 08:26 | #8

          une chose bien étrange ce produit…

          j’ai mis la boucle (5 derniers articles pour un tags) après la balise “more” d’un de mes articles…
          à l’affichage no problem sauf que dans le flux rss Feedburner et dans les email feedburner adressés à partir de ce flux, le derniers article de la boucle remplace l’article courant (sauf le titre)…?
          (j’ai téléchargé la dernière version ci dessus)

        9. 30/07/2008 à 20:02 | #9

          Bonjour, existe t’il un moyen d’EXCLURE un tag ?
          Par exemple si je veux tous les posts qui contiennent tag1 SANS tag2 ? J’imagine qu’on ne peut pas utiliser le symbole « - » puisqu’il est utilisé dans les slugs… Ce serait vraiment une fonctionnalité intéressante.

        10. 08/08/2008 à 22:41 | #10

          Ce plug-in est merveilleux. HALLELUTRA !

          C’est exactement ce que je cherche depuis trèèèèès longtemps maintenant.

          Merci beaucoup messire

        11. Gordie
          16/08/2008 à 16:59 | #11

          Sous 2.6 (je ne sais pas pour les autres), l’activation du plugin implique que les pages ne peuvent plus être « découpées » !!! ()

          Comment éviter ceci ? J’en ai besoin….
          Super plugin sinon !

        12. AJ
          21/01/2009 à 23:26 | #12

          The plugin doesn’t seem to want to list items if there is a space in the tag. eh If I use the tag Human Resources, it won’t grab the post, but if I use HR it does. I know the wordpress recognises multi-word tags as the only requirement is that they are comma separated. Does your plugin only work with single word tags, or is there a tweak I am missing to make it use multi-word tags.
          Merci
          AJ

        13. 23/07/2009 à 14:07 | #13

          Salut, ton plugin ne marche plus :(
          Je suis sous wordpress 2.8.2, il y a t-il une solution ?
          Merci beaucoup !

        14. 09/12/2010 à 20:31 | #14

          Je déterres le post, pour une question assez bête en fait (j’espère que j’ai tout bien lu… ).

          Je suis photographe de concerts. Je fais régulièrement un billet de rappel des concerts des mois passés.

          Y a-t-il moyen d’afficher par exemple une liste de tous les billets de septembre (quelque soit le nombre de billets), d’une catégorie précise (ici « photos »).

          Merci d’avance.

        1. 05/05/2008 à 17:33 | #1
        2. 11/07/2008 à 04:42 | #2
        3. 14/07/2008 à 14:58 | #3
        4. 12/08/2008 à 05:28 | #4
        5. 16/08/2008 à 02:36 | #5
        6. 01/09/2008 à 16:08 | #6
        7. 25/09/2008 à 07:06 | #7
        8. 11/03/2013 à 17:02 | #8