Cet article s’adresse plutôt aux développeurs de thèmes WordPress, même si le code en lui-même est assez simple. Parfois, lors de la création d’un thème, on peut vouloir utiliser plusieurs boucles différentes, notamment en page d’accueil. Un exemple simple : une boucle avec les articles récents, une boucle avec des articles au hasard.

Afin d’éviter qu’un (ou plusieurs) article, ou un contenu personnalisé quelconque, se retrouve dans les deux affichages de ces boucles en même temps, il suffit de quelques lignes de code.

L’astuce pour éviter cet inconvénient est de simplement stocker dans un tableau les ID des contenus affichés dans la première boucle, puis vérifier lors de la création de la seconde boucle que les contenus que l’on récupère ne se trouvent pas dans ce tableau. Un peu de code valant mieux qu’un long discours, voyons tout de suite comment faire :

Et la vérification dans la seconde boucle, une fois que nous avons stocké toutes les ID dans le tableau $do_not_duplicate

L’instruction continue en PHP permet de ne pas prendre en compte l’itération courante et de passer directement à la suivante dans une boucle.

À propos de

J'intègre, je développe, je pluginise, je thémifie, je WordPress !

Site internet | Facebook | Twitter

10 Responses to “Eviter du contenu dupliqué dans des boucles multiples”

  1. Tu peux aussi utiliser un “posts__not_in” dans la requête (toujours avec un tableaux des ID déjà enregistrée). De cet façon le nombre d’article attendus restera juste.

  2. C’est peut-être stupide ce que je vais dire, mais pourquoi ne pas simplement utiliser wp_reset_query() après le endwhile pour remettre à zéro la prochaine boucle ?

    http://codex.wordpress.org/Function_Reference/wp_reset_query

  3. excelent ce tuto! je suis pas un pro du codex wordpress mais là c’est très bien expliqué. Thanks!!

  4. Bonjour

    petite question par rapport à cet article,

    si on a 4 boucles , que la première, la 2eme et la 3eme affiche un type d’article, et la quatrième, tous les articles saut ceux des 3 loops précédents.

    est-ce qu’on doit appeler chaque boucle différemment comme $my_query1, $my_query2, $my_query3… et qu’en ets til pour la variable $do_not_duplicate ?

    merci

    • Oui chaque variable qui va contenir l’appel à une nouvelle boucle doit avoir un nom différent, sinon ça donnera des résultats bizarres ;) Pour la variable $do_not_duplicate, le fonctionnement est le même, il suffit de la remplir dans chaque boucle, puis de l’utiliser dans la dernière.

  5. super, merci !

Trackbacks/Pingbacks

  1. 5 astuces et bouts de code pour personnaliser WordPress | WordPress & Webdesign - [...] Eviter du contenu dupliqué dans des boucles multiples — Lorsqu’on utilise plusieurs boucles personnalisées dans un thème WordPress, il ...
  2. L’Hebdo WordPress : Barcamp – Mobile – WordPress 3.4 | WordPress Francophone - [...] de theloop.fr explique comment éviter du contenu dupliqué dans le cas où plusieurs boucles WordPress sont utilisées dans un ...
  3. WordPress Basics and Beyond Basics en version 0.3.2 | WordPress & Webdesign - [...] Tout d’abord, j’ai modifié la boucle principale en changeant la variable $do_not_duplicate afin de recevoir le tableau $do_not_duplicate[] au cas où il faudrait ...

Leave a Reply

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

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">