Créer un index de tag pour WordPress

En lisant un tweet de Fran6, l’auteur du site Fran6art.com et du livre Le campus: WordPress, qui se demandait comment réaliser une sorte d’index de tag sur wordpress, je me suis amuser à programmer ça et voilà comment j’ai procédé:

  1. Je créé un template de page tout simple, avec comme nom IndexTag. Je vous laisse le loisir de découvrir comment faire sur le codex de wordpress.org, mais pour faire simple, il suffit souvent de prendre si on l’a, la page page.php dans le dossier de son template wordpress, supprimer la boucle qui affiche l’article et les tags du style <?php the_permalink(); ?> en les remplaçant par ce qu’il faut (si vous avez besoin d’aide la dessus, n’hésitez pas à laisser un commentaire ).
  2. Dans le corps de la page, j’ajoute cette partie de code (les explications arrivent ensuite):

    <?php $tag = wp_tag_cloud(‘format=array&smallest=8&largest=8’ );

            $start = « 0 »;

            foreach($tag as $untag){

                    echo « n »;

                    ereg(« >([A-Za-z0-9.|-|_éàèêç ]*)</a> »,$untag, $letag);

                    $letag[1] = ucfirst($letag[1]);

                    if($start == « 0 »){

                           $start = $letag[1][0];

                           echo $start;

                           echo « <ul> »;

                    }

                    if($letag[1][0] == $start)

                           echo « <li>$untag</li> »;

                    else{

                           echo « </ul> »;

                           $start = $letag[1][0];

                           echo $start;

                           echo « <ul> »;

                           echo « <li>$untag</li> »;

                   }

            }

    ?>

  3. Il ne reste plus qu’à créer une page avec pour modèle de page IndexTag.

Pour les explications du codes, c’est plutot simple:

  1. wp_tag_cloud avec l’option format=array récupere dans un tableau de variable tous les tags du site
  2. Dans ma boucle: 
    1. ereg(« >([A-Za-z0-9.|-|_éàèêç ]*)</a> »,$untag, $letag);  est une fonction qui recupere le texte qui se trouve dans le lien du tag
    2. $letag[1] = ucfirst($letag[1]);    met en majuscule la premiere lettre du tag
    3. La suite vérifie simplement si le tag commence par la bonne lettre, si c’est le cas, on le garde dans la liste, sinon on construit une nouvelle liste.

Et voilà! Libre à vous de modifier ce code comme il vous plait, en ajoutant par exemple une balise de titre sur autour de  echo $start; comme par exemple echo « <h3>$start</h3> »;

En espérant vous avoir aidé dans votre apprentissage !! N’hésitez pas à poser vos questions en commentaire.

Mat_

Au départ on sort avec un diplôme d’ingénieur de l’ESIL (devenu Polytech’Marseille) en Informatique, réseau et multimédia, spécialisé dans les Systèmes d’Informations et Services E-Business.
En même temps on bosse, on développe, on apprend. Et maintenant on entreprend.

Passionné de nouvelles technologies, et évangéliste de WordPress, j’aime découvrir, tester, rechercher.

Vous aimerez aussi...

Suivez Kune.fr sur les réseaux sociaux !

Kune.fr est votre site de ressources web. Vous y trouverez de nombreux outils utiles pour le web.
Alors n'hésitez plus, aimez notre page !

  • Ressources Wordpress, tutoriels, plugins et thèmes
  • Ressources design, packs d'icônes, kits UI ...
Fermer cette popup
%d blogueurs aiment cette page :