Créer un sitemap sans plugin avec WordPress

Un plan de site – sitemap en anglais, est très utile pour vos visiteurs et les moteurs de recherche qui visualisent en un coup d’œil la structure de votre site. Avec WordPress, quelques lignes de code suffisent en utilisant les modèle de pages.

Vous recherchez un développeur WordPress capable de vous créer un thème sur-mesure ? C'est mon métier depuis plus de 8 ans, prenez contact et discutons de votre projet.

N.B : ce tutoriel a été mis à jour le 21/11/2012. Le principe expliqué dans la vidéo ne change pas pour autant, seuls les codes sources font l’objet d’évolutions importantes.

Étape n°1 – Création du modèle de page PHP

A l’aide du Bloc-note de votre choix, créez un nouveau fichier que vous intitulerez template-sitemap.php. Si vous le pouvez, optez pour un encodage UTF-8 pour une meilleure compatibilité.

Collez dans un premier temps les lignes de code suivante :

<?php
/*
Template Name: Sitemap
*/
?>

Elles indiquent le nom du modèle de page qui sera affiché dans l’outil de création de pages de WordPress.

Ensuite, nous allons reconstituer la structure de la page. Cette structure est facile à reprendre car il suffit d’ouvrir le fichier page.php et dans coller la structure conformément au thème. Au minimum, il nous faut au moins récupérer l’en-tête :

<?php get_header(); ?>

Pour finir, copiez / collez les lignes de code PHP suivantes :

<div id="content">
<h2><?php _e('Pages', 'textdomain'); ?></h2>
<ul><?php wp_list_pages("title_li=" ); ?></ul>
<h2><?php _e('RSS Feeds', 'textdomain'); ?></h2>
<ul>
<li><a title="Full content" href="feed:<?php bloginfo('rss2_url'); ?>"><?php _e('Main RSS' , 'textdomain'); ?></a></li>
<li><a title="Comment Feed" href="feed:<?php bloginfo('comments_rss2_url'); ?>"><?php _e('Comment Feed', 'textdomain'); ?></a></li>
</ul>
<h2><?php _e('Categories', 'textdomain'); ?></h2>
<ul><?php wp_list_categories('sort_column=name&optioncount=1&hierarchical=0&feed=RSS'); ?></ul>
<h2><?php _e('All Blog Posts', 'textdomain'); ?></h2>
<ul><?php $archive_query = new WP_Query('showposts=1000'); while ($archive_query->have_posts()) : $archive_query->the_post(); ?>
<li>
<a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a>
(<?php comments_number('0', '1', '%'); ?>)
</li>
<?php endwhile; ?>
</ul>
</div>
<?php get_footer(); ?>

Dans un souci d’internationalisation de votre thème, il est important de spécifier le textdomain par celui correspondant à votre thème. Vous le retrouverez directement dans l’en-tête de la feuille de styles ou dans la plupart des fichiers PHP.

Envoyez à présent le fichier dans le dossier de votre thème localisé dans /wp-content/themes/NOM_DU_THEME/

Étape n°2 – Création de la page Sitemap

Rendez-vous maintenant dans l’administration de votre site WordPress puis créez une nouvelle page via le menu Pages puis Ajouter.

Commencez par lui donner un nom. Par exemple, Plan du site.

Dans la section Attributs, déroulez la liste des modèles de page puis indiquez Sitemap. Il s’agit bien du nom que nous avons fourni dans le fichier template-sitemap.php.

Capture d'écran - Définition d'un modèle de page Plan du site
Le modèle de page Sitemap utilisera donc le code du fichier sitemap.php

Faites donc Publier puis visualisez la page pour constater le résultat.

Très important, le plan du site est un élément important de votre stratégie de référencement mais également pour permettre à vos visiteurs de se localiser sur votre site. Et vous amis lecteurs, avez-vous créé votre plan de site ?

Crédits photo : boxman

157 commentaires
  1. Je pense que je vais m’y mettre quand j’aurais un peu de temps demain…

    Au niveau référencement c’est sensé être mieux que le fameux pluggin Google XML Sitemaps ? Peuvent-ils fonctionner de concert ou risque-t-on un quelconque duplicate contents ?

    Article utile et clair en tout cas !

    1. Bonjour,

      Personnellement, j’aurais plus fait un rapprochement avec Dagon Design Sitemap Generator.
      Est-il envisageable d’en prendre une partie pour personnaliser la page erreur 404?

      Heu, vous êtes chez quel hébergeur??? J’ai un gros soucis avec le mien
      Merci d’avance

      1. Aurélien Denis auteur de l’article

        Je suis chez Mavenhosting qui est mon hébergeur favori !

        Je ne comprends pas bien le rapport avec la page d’erreur 404 qui peut être crée manuellement.

        En effet, je n’ai pas évoqué l’utilisation de plugins… mais c’était bien le but de l’article !

    2. Aurélien Denis auteur de l’article

      Pour moi les 2 plugins doivent fonctionner en parallèle. Un fichier XML Sitemap n’est pas du tout conçu de la même manière et contient d’autres informations (notamment les fréquences de mises à jour, etc.).

      Côté référencement, les 2 solutions sont bénéfiques.

  2. Mavenhosting…..déjà lu ce nom-là. Je ne vais pas tarder du tout à voir ça
    je ne peux notamment même pas faire de sauvegarde de base de données quotidienne, à moins de passer su serveur.
    Mon blog pèse lourd et impossible de compresser…………tout ça découvert récemment

    Sinon, pour la page 404, pour la personnaliser. J’y affiche à l’heure actuelle mes 50 derniers articles

    Là par exemple, je cherche juste une ligne de code pour afficher les articles relatifs.
    Simple tags est très très bien mais trop lourd. Je pensais trouver une simple ligne de code, comme celle-là par exemple:

    Mes connaissances sont juste un poil limitées

    1. Hum, j’avais collé une ligne de code mais elle n’a ps été prise en compte
      ce n’est pas grave, mais c’est pour expliquer qu’il n’y ait rien après
      Simple tags est très très bien mais trop lourd. Je pensais trouver une simple ligne de code, comme celle-là par exemple:

      1. Aurélien Denis auteur de l’article

        Pour la ligne de code, il faut l’insérer entre les balises code comme indiqué au-dessus de la zone de commentaires.

        Sinon, tu peux me l’envoyer par le formulaire de contact.

        Pour afficher les articles relatifs, j’ai récemment découvert le plugin WordPress 23 Related Posts qui permet de lister les articles relatifs via une simple commande PHP et sans qu’il n’y ait trop d’options de configuration. Gros avantage : on peut choisir parmi la liste des champs personnalisés pour afficher une miniature.

    2. Je suis partie, pour d’autres sites sur plantehoster.
      Faudra que je revienne ici pour ce type de plan.
      Mais Dagon design fait du bon boulot…..
      Je ne pense pas que ce soit le plugin le plus lourd.
      Mais bon, chacun son truc.

  3. C’est fait ! Aucun problème pour le tuto, reste à le personnaliser un peu si j’ai le temps …

    Merci les gars !

  4. Thierry Benquey

    Bjour
    Mis en place, fonctionne agréablement et légèrement.
    Remerciements du fond du cœur.
    Amitié
    Thierry

  5. Bonjour,

    J’ai suivi ce tuto, mais j’ai une erreur : serait-il possible que cela ne fonctionne plus une fois activé le multi-site de wp3 ?
    En tout cas Google XML Sitemaps ne fonctionne plus

    1. Aurélien Denis auteur de l’article

      Quelle est ton erreur ?

      Normalement, Google XMl Sitemaps fonctionne avec WordPress 3.0… du moins chez moi c’est côté avec WordPress multi-site.

      1. Voilà le code de mon erreur lorsque j’essaie d’ouvrir la page :
        Parse error: syntax error, unexpected $end in /homez.53/hoteldeb/www/affiliation-systeme.com/www/wp-content/themes/twentyten/sitemap.php on line 32

        1. Je confirme que googlexml sitemap fonctionne avec donc je dirais plutôt un petit problème dans ton fichier sitemap.php

          un  » qui manque ou en trop ?
          mais rien d’insoluble

      2. Bonjour,

        J’ai suivi ce tuto et j’ai eu la même erreur que DavidT. Sous dream if have_posts() : se met en rouge. Ce qui est dingue c’est que j’ai regardé sur la page d’index, c’est exactement le même code et pourtant pas d’erreur… est-ce que vous auriez une idée, c’est super bizarre que ça marche chez certains et d’autres non.

          1. Oups, ça n’a pas marché:
            if (have_posts()) :
            while (have_posts()) : the_post();
            /* A ajouter */ endwhile; endif

  6. Super tutoriel !
    Par contre j’ai le même souci que DavidT…sauf que je suis toujours en train de courrir après mon unespected $end… php et moi on est pas encore très intime..lol

    merci d’avance pour le coup de main !!

    1. Aurélien Denis auteur de l’article

      Malheureusement, ce bout de code devrait fonctionner…

      1. Il fonctionne en effet très bien, je n’arrivai pas car je n’intégrait pas correctement vos bouts de codes dans le code page copié-coller.

        Maintenant que je suis plus à l’aise avec WordPress, c’est passé tout seul

        Merci Aurélien.

        David.

    2. Il manque surement un :

      pour fermer le bloc de code :

      Présent dans le fichier page.php et non repris ici.

      Merci pour ce tuto en tout cas !

      1. Aurélien Denis auteur de l’article

        Arf le code n’est pas passé ! Il faut le convertir en HTML pour qu’il fonctionne…

  7. Bonjour,

    si on veux absolument qu’une catégorie ou page n’apparaisse pas que doit ton ajouter ?

    merci

    1. Aurélien Denis auteur de l’article

      Tu peux utiliser un paramètre exclude dans les commandes wp_list_pages et wp_list_categories en indiquant l’ID à exclure.

      Plus d’informations sur le codex WordPress.

  8. Bonjour et merci pour l’article.

    Après quelques péripéties j’ai réussi à le faire fonctionner. Seulement il ne m’affiche que seulement 5 articles par cétagorie alors qu’il y en a une trentaine parfois. Sauriez-vous pourquoi ?

    Merci par avance.

  9. En fait pour que ça fonctionne comme il faut j’ai du copier la totalité de mon page.php, inclure le code PHP que vous fournissez à l’intérieur de la section dédiée à l’article mais oter la partie « affichage de l’article » (sinon après le plan il m’afficher le dernier article du plan…).

    Du coup ce chiffre 5 est peut-être dû au fait que mon blog n’affiche que 5 article par page. Mais je cherche dans le page.php quelle est la ligne qui fait ça.

    1. Aurélien Denis auteur de l’article

      Pour afficher la totalité des articles par catégorie, il faut modifier le code relatif par :

      <h3>Articles par catégories</h3>
      <?php $saved = $wp_query;
      $cats = get_categories();
      foreach ($cats as $cat) {
      query_posts(‘showposts=999&cat=’.$cat->cat_ID);
      ?>

      Le paramètre showposts fixe la limite du nombre d’article. En indiquant 999 tu es tranquille pour un moment.

      Tu peux donc restaurer tes différents fichiers PHP et reprendre les lignes de code du tutoriel.

      Et merci de ton commentaire ! Je vais modifier l’article en conséquence.

  10. Maître Mô

    Bonjour,

    J’utilise actuellement le plugin Dragon Sitemap, mais effectivement, votre script donne exactement la même chose, du coup en plus léger et en interne : que du bonheur…

    En revanche, il m’intéressait quant à moi, qui à « faire » un poil de code, d’obtenir , en plus de la liste par catégories, la liste de mes articles dans l’ordre chronologique (du plus récent au plus ancien), et tant qu’on y est avec pour chaque mention de ses catégorie, date, auteur, et nombre de coms…

    J’ai essayé cette nuit plusieurs combinaisons, tant avec query_post que get_post, mais je n’arrive pas à obtenir un truc propre avec toutes les infos souhaitées : je sais que c’est vous demander carrément un bon bout de code, mais auriez-vous une idée, d’abord de la fonction à utiliser, et ensuite de la façon de récupérer ces paramètres ?

    Merci d’avance pour votre éventuelle réponse !

    1. Aurélien Denis auteur de l’article

      Je pense que tu pourrais t’aider assez facilement de l’article Créer une page d’archives des articles classés par catégorie.

      Tu verras que la fonction query_posts est utilisée et qu’une boucle (loop) est insérée en-dessous.

      Avec quelques commandes PHP du codex, il sera possible d’ajouter des informations (dans le tutoriel, il y a déjà le nombre de commentaires).

      1. Maître Mô

        Je vois qu’on doit mal déjeuner tous les deux : merci, Aurélien, de ta réponse et de sa rapidité !

        J’avais loupé cet autre article, je vais regarder ça de plus près, et tâcher de récupérer tous mes petits détails… (Je t’avais déjà également piqué le nombre de commentaires, effectivement !)

        Merci encore – quand ce sera fini, vers 2012, je poste le code ici !

        1. Aurélien Denis auteur de l’article

          Décidément il va s’en passer des choses en 2012 !

  11. Hello ils se trouve que j’ai aussi une erreur : syntax error, unexpected $end in…

    J’ai bien contrôlé mon code et il me semble qu’il ne manque rien ?
    à tout hasard le voici, peut-être ai-je oublié un point ou une virgule ? merci bcp pour l’aide.

    <?php
    /*
    Template Name: Sitemap
    */
    ?>
    <?php get_header(); ?>
    <?php include (TEMPLATEPATH . ‘/sidebar_l.php’); ?>
    <div id= »content »>
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>

    <h3><?php _e(‘Pages’) ?></h3>
    <ul>
    <?php wp_list_pages(‘depth=0&sort_column=menu_order&title_li=’ ); ?>
    </ul>
    <h3><?php _e(‘Catégories’) ?></h3>
    <ul>
    <?php wp_list_categories(‘title_li=&hierarchical=0&show_count=1’) ?>
    </ul>
    <h3>Articles par catégories</h3>
    <?php $saved = $wp_query;
    $cats = get_categories();
    foreach ($cats as $cat) {
    query_posts(‘showposts=999&cat=’.$cat->cat_ID);
    ?>
    <h4><?php echo $cat->cat_name; ?></h4>
    <ul>
    <?php while (have_posts()) : the_post(); ?>
    <li style= »font-weight:normal !important; »><a href= »<?php the_permalink() ?> »><?php the_title(); ?></a> – <?php _e(‘Commentaires’) ?> (<?php echo $post->comment_count ?>)</li>
    <?php endwhile; ?>
    </ul>
    <?php } $wp_query = $saved; ?>

    </div>

    <?php get_sidebar(); ?>

    <?php get_footer(); ?>
    

    1. Aurélien Denis auteur de l’article

      Si tu as recopié le code du tutoriel, tout devrait fonctionner à merveille…

      Il faudrait que tu t’aides du message d’erreur pour localiser la ligne fautive. Dépanner à l’aveuglette sans même l’URL… c’est un « peu » dur quand même !

      1. hello oui effectivement désolé :
        l’url de mon sitemap est : http://gca.numero7.ch/sitemap

        par contre pour le message d’erreur, il me donne toujours la dernière ligne de mon code comme référence.
        Je me demande si ce n’est pas un problème avec le header et footer…

        1. Aurélien Denis auteur de l’article

          Supprimes la ligne qui appelle le footer et la sidebar. Cela éliminera un bug lié à tes autres fichiers PHP.

          1. non ça change rien… bref je vais fouiller merci bcp en tout cas.

          2. Aurélien Denis auteur de l’article

            Bonne continuation dans ce cas !

    2. Il manque le : endwhile; endif;
      juste avant de fermer ton div content.

      Juste avant les sidebar et footer.

      Et là ça devrait marcher.

      1. impeccable, merci bcp ça fonctionne du coup.
        bonne journée

  12. Pas mal du tout pour créer rapidement une page plan de site.

    Le gros défaut cependant, c’est que le rendu visuel n’est pas très ergonomique pour l’utilisateur, notamment au niveau des catégories/sous catégories.

    Pour ceux que cela intéressent, j’avais réalise un tutoriel pour créer une page plan de site sur WordPress. Mais attention, cela requiert d’installer un plugin, et de modifier son thème.

    Par contre, la méthode donnée ici est parfaite pour le référencement naturel, puisque les moteurs auront accès en un seul clic à l’intégralité des contenus du site.

  13. mais alors, plus besoin de plugin!Tous ces petit tutoriels que vous nous donnez sont extra! Ça allège considérablement le site ..c’est vraiment géniale je trouve! Merci beaucoup, quelle chance de vous avoir trouvé

  14. il m’est impossible de faire apparaitre ma sidebar. Soit elle apparait et mon sitemap est dans le footer, soit elle disparait et le sitemap est à sa place. J’ ai testé à plein d’endroit le script , mais y rien à faire. Je ne sais plus quoi tester…

  15. j’ ai testé sur le thème « Grassland », mais à la base il n’ a pas de page.php, mais qu’ une index.php, forcement ca ne fonctionne pas…ca veut dire qu’ on ne peut pas générez un « sitemap sans plugin » sur ce theme ou bien?

    PS: j’ ai bien sur testé avec le script index.php

    1. Bonsoir Gwenm,

      Moi aussi j’ai eu du mal au début.

      Je pense qu’il faut que tu récupères dans ton fichier index.php ce qui affiche une page. Pour cela le codex de WordPress peut beaucoup t’aider.

      Tu retrouves ce qui affiche une page comme indiqué dans ce codex et qui est dans le fichier de ton thème…

      Ne te décourages pas, et reviens y plusieurs fois si tu n’y arrive pas de suite, moi il m’a fallu plusieurs semaines pour y arriver (le temps de comprendre )

      C’est un travail de longue haleine, mais quand on y arrive c’est le bonheur!

      Bon courage.

      David

      1. Salut, DavidT! En effet j’ ai pu enfin créer mon sitemap, il ne me reste plus qu’ a trouver comment faire une marge. Je te remercie pour ton lien et ton encouragement

        1. si tu donne le code de ta page je pourrais t’indiquer comment mettre en place ta marge

          1. Salut olivier, j’ ai trouver comment faire une marge( , merci aussi pour ton soutien

    2. Aurélien Denis auteur de l’article

      C’est excellent cette entraide qui règne ici !

      Je suis souvent très occupé – même si je réponds à tout le monde, et c’est donc merci à tous !

        1. de rien ça fait plaisir d’aider quand on peut. Bonne soirée.

  16. bonjour,

    Je cherche à faire quelque chose de similaire : liste de tous les articles par catégorie et sous-catégories, mais pour l’intégrer comme menu dépliant dans la sidebar.
    Avez vous des pistes pour faire ça ?
    merci

    1. Aurélien Denis auteur de l’article

      Sûrement avec un plugin ayant pour mot-clé accordéon ou slider.

      1. mmm… si seulement c’était si simple.
        La seule piste après de nombreuses recherches c’est le plugin « wp superslider menu ». Mais je n’arrive pas à le faire fonctionner sous WP 3.0.3…

        1. Aurélien Denis auteur de l’article

          En même temps, est-ce vraiment nécessaire de lister tous les articles dans ta sidebar ? Ca risque de faire beaucoup à force non ?

          Désolé mais je n’ai pas d’idées pour faire de menu déroulant.

          Essaies des mots-clés tels que : links slider jquery etc.

          1. C’est assez important quand on veut une navigation digne de ce nom. Ça donne un petit côté statique moins « bazar » qu’un flux de blog.
            Voilà un exemple de ce que ça donne sur un dotclear sans « sous catégories » : http://blognature.fr

  17. info2tele

    Bonsoir,

    Je tente de créer un sitemap et j’avoue que ce tuto est très instructif.
    J’ai donc suivi la procédure mais je me retrouve avec une erreur de syntaxe ligne 15.

    Je ne vois rien.

    Je joins le code de la page sitemap, peut-être trouverez-vous l’erreur.

    Merci pour l’aide.





    




    
Articles par catégories
    
cat_ID);
    
?>
    
cat_name; ?>


    
<a href= » »> – (comment_count ?>)

    



  18. info2tele

    DSL, ça n’a pas fonctionné pour le code :





    




    
Articles par catégories
    
cat_ID);
    
?>
    
cat_name; ?>


    
<a href= » »> – (comment_count ?>)

    



  19. info2tele

    Bon finalement j’y suis arrivé, mais ce n’est pas très joli.

    Le footer a disparu pourtant il est appelé dans le fichier sitemap.php.

    En revanche, le fond blanc a lui disparu.

    Une idée ?

      1. Aurélien Denis auteur de l’article

        Tu as sans doute ce plugin présent quelque part… peut-être est-ce le thème qui génère un appel de plugin.

    1. Aurélien Denis auteur de l’article

      Pas d’idées car je n’ai pas accès aux fichiers… pour cela demandes de l’aide sur le forum francophone de WordPress !

      1. c’est fait ;-), mais j’ai fait le teste sur un autre thème et ca marche..Bizzard..

        1. à priori cela viendrais du plugin Go Press Tools, qu’ il faut désinstaller, ainsi que la page sitemap.php( s’il elle a été déjà créer) bref tout recommencer de zero sans le plugin Go press Tools..

          1. Aurélien Denis auteur de l’article

            Merci de ce retour d’expérience !

  20. info2tele

    Bonsoir,

    Je cherche la procédure pour réaliser exactement la même présentation que le sitemap de ce site…

    Pour l’instant, je n’arrive à rien, simplement à lister l’ensemble de mes articles…

    Merci

      1. Aurélien Denis auteur de l’article

        Il me semble que c’est pourtant la même chose. Les pages et les catégories sont bien listés en haut de ton plan de site…

        1. info2tele

          Pour ce qui est de l’organisation, tout va bien. Mais question look, sur mon site, ce n’est pas comme ici.

          Ce doit être une question de CSS mais je ne sais pas comment l’améliorer…

          Faut-il un code spécial ?

          1. Aurélien Denis auteur de l’article

            Oui c’est un problème CSS… mais les commentaires ne sont pas faits pour obtenir du support sur-mesure… sinon, il me faudrait faire cela à temps plein ce qui ne me permets pas de gagner ma vie !

  21. info2tele

    Sinon, je suis à la recherche d’un tuto ou d’un plugin qui puise m’aider à fabriquer une page « vidéo ».

    Explication :

    Je voudrais que sur la home apparaisse un module avec 1 Vidéo plein format et dessous 3 petites. En dessous, je voufrais mettre un lien « Toutes les vidéos » qui pointe vers la page « Vidéo » où les internautes retrouvent toutes celles misent en ligne (les archives en quelques sorte). Ces vidéos se positionnent 3 par ligne sur 10 lignes par exemple et ainsi de suite. Quand l’internaute clicke dessus, avec lightbox ?, le site devient gris et la Vidéo choisie se joue.
    Compliqué ?

    1. Aurélien Denis auteur de l’article

      Pour gérer une chaîne vidéo, je recommande TubePress. Pour le reste, il te faut faire appel à un professionnel… on ne fait pas un site qu’avec des plugins WordPress !

  22. info2tele

    Merci pour tes réponses. Mon tuto m’a bien servi et maintenant je vais me mettre au css.
    Concernant la page VDO, je me doutais bien que les plugins ne me seraient d’aucun secours.
    Pour ce genre de prestation, quel est le montant des honaraires ?
    Cordialement

  23. Bonjour,

    J’ai voulu utliser ce code, tout s’est apperemment ien déroulé, pas d’erreur, et je jubilais déjà.
    MAIS, quand j’ai affiché la page avec le modele, la page est toute blanche !

    pour info : le theme que j’utilise contenanit déjà un fihier sitemap, que j’ai viré du serveur pour mettre celui-ci à la place.
    dans la page.php, il y avait déjà tout un blabla, et j’ai collé le code d’Airélien à la suite.

    Si quelqu’un avait une idée de ce que j’ai du oublier de faire..;

    Merci

    1. Bon, j’ai trouvé le souci, c’est juste moi qui m’était plantée en route…J’ai relu attentivement le mode d’emploi, recommencé la manip, et tout s’est déroulé normalement !

      Merci

        1. arf, non finalement je n’avais pas vu, mais cela faisait disparaitre les widgets et le footer de toutes les pages du site, alors tant pis, j’ai laissé tomber et j’utlise le site map de mon template même si je préférais le tien Aurélien…
          je pense que c’est parceque un fichier sitemap.php était déjà prévu, sans doute avec le code de page.php écrit en conséquence, enfin je n’en sais trop rien car je ne developpe pas.
          Snif !

          1. Aurélien Denis auteur de l’article

            Ce n’est pas évident quand on débute en PHP effectivement…

  24. Merci pour ce code qui fonctionne parfaitement.
    Est-il possible d’afficher ce plan sur 2 colonnes pour gagner en lisibilité ?

    Fred

    1. Aurélien Denis auteur de l’article

      Sans doute en utilisant du CSS…

  25. Merci pour ce code : il fonctionne parfaitement.
    Il ne reste plus qu’à mettre les mains dans le CSS pour en améliorer la présentation.

  26. Merci pour ce tuto, très simple et efficace pile ce que je cherchais

    Seul petit bémol, j’ai du coup un onglet « plan du site » dans mon menu horizontal (j’utilise le thème twenty ten), comment l’enlever ? Histoire de le rendre accessible seulement par le footer…
    Merci !

  27. Info2tele

    J’avais le même problème dans le menu mais avec ce bout de code ça fonctionne (il exclut la page sitemap)

  28. Désolé j’ai pas vraiment compris où est ce qu’il fallait mettre l’ID de la page sitemap.
    Qu’est ce que tu entends par remplacer les xxx ?

  29. info2tele

    encore DSL, je n’avais pas vu comment publier le code…

    <pre&gt</pre&gt

    Et hop !

    1. info2tele

      Je ne comprends pas comment envoyer le code. Donnes-moi une adresse mail, ce sera bien plus simple.

      Je l’envoies un peu plus tard car que j’ai dîner. Où je me trouve, il est 20H

      A+

    2. info2tele

      @ Cyrkou

      As-tu réussi à insérer le code ? Est-ce que ça fonctionne ?

  30. t’as toujours pas réussi

    -> ( Vous devez remplacez les «  » respectivement par < et > )

    jcomprenais pas ce que tu voulais dire avec « pre »…

    1. info2tele

      As-tu réussi à insérer le code ? Est-ce que cela fonctionne ?

  31. Merci pour l’article.

    J’ai du rajouter « à la main » des balises div avec les bonnes classes pour que le CSS global du site soit appliqué correctement.

    Si ça peut aider quelqu’un qui a le même problème.

    1. Bonjour,
      j’ai suivi ce tuto (trèsinteressant) mais malheureusement j’ai une erreur lorsque je lance la page du Plan de site :

      « Parse error: syntax error, unexpected $end in /www/blog/wp-content/themes/platform/sitemap.php on line 31 »

      J’ai recopié le code à l’identique de ce qui est dit car le code que j’ai dans mon fichier page.php est le suivant :

      < ?php /* This theme is Copyright (C) 2008-2010 Andrew Powers, PageLines.com (andrew AT pagelines DOT com) */setup_pagelines_template();il n'y a même pas de balise ?>

      Je suis sous WordPress 3.1.2 et j’utilise le thème Platform (et mon blog est sur une boutique prestashop)

      Quelqu’un voit le problème ?

      Merci.

      1. Aurélien Denis auteur de l’article

        Je pense que ton problème vient de ton thème. Non pas que ce dernier soit bugué mais que tu ne dois pas l’insérer au bon endroit.

        La structure des thèmes premium est généralement plus complexe que sur les thèmes de base.

        1. Pour l’insérer, je l’ai récupéré « directement » via le BO de wordpress, dans l’onglet « installer des thèmes ». J’ai fait ma recherche et je l’ai installé à partir de là.
          Et j’ai bien le dossier Platform situé dans /blog/wp-content/themes/

          Il n’est pas installé au bon endroit ou il est mal installé ?

          (au cas où ça peux aider, j’avais initialement installer le plug-in suivant : Dagon Design Sitemap Generator. Ca marchait très bien, jusqu’à ce que j’installe le plug-in suivant : DashBoard Google Analitycs (parce que j’avais aussi besoin d’un sitemap au format XML). Comme Dagon Design Sitemap Generator ne fonctionnait plus, je me suis tourné vers ta solution…)

          Merci encore pour ton aide.

        2. Bon, je galère toujours…
          je vois que tu parles des thèmes Premium et thèmes de base.
          Comme c’est bcp plus galère avec les thèmes Premium (PlatForm en fait visiblement parti), est-ce que tu pourrais me suggérer un ou deux thèmes de base stp ?
          Parce que si je galère comme ça à chaque install de plug-in, autant que je change dès maintenant de thème.

          Je te remercie pour tes conseils.

  32. info2tele

    Bonjour,

    Je viens de réinstaller une page Sitemap en suivant à la lettre le tuto.

    Quand je lance la page, j’ai ce message :

     » Error 404 – Not found

    Le fichier requis n’a pas été trouvé. Il peut s’agir d’une erreur technique. Veuillez réessayer ultérieurement. Si vous ne pouvez pas accéder au fichier après plusieurs tentatives, cela signifie qu’il a été supprimé.  »

    Ci-dessous le code du sitemap.php

    Articles par catégories
    cat_ID);
    ?>
    cat_name; ?>

    <a href=" »> – (comment_count ?>)

    1. info2tele

      <pre>

      Articles par catégories
      cat_ID);
      ?>
      cat_name; ?>

      <a href=" »> – (comment_count ?>)

      <pre/>

  33. flet le kid

    Bonsoir,

    j’ai suivi ce tuto et je vous tire le chapeau. J’ai rencontré l’erreur …$end à la ligne … et en lisant tout les commentaires j’ai vu qu’il fallait ajouter &lt?php endwhile; ?&gt et &lt?php endif; ?&gt (je le mets pour ceux qui n’auront pas la patiente de tout lire.
    J’exhorte ceux qui ont des soucis à lire tous les commentaires car d’autres ont déjà eu et résolu les problèmes que vous rencontrez.
    J’ai découvert cet article et ce site hier et je sens que je vais rapidement progresser sur WordPress grâce à vous.

    Félicitations encore pour le travail abattu et à bientôt.

  34. Simple et de bon goût et last but not least : sans plugin …

    Je n’ai eu aucune difficulté à mettre en oeuvre ce code :

    1) J’ai renommé le fichier page.php en template-sitemap ; l’avantage, c’est que toutes les classes du site et les appels à fonction et variables spécifiques au thème sont en place.
    2) J’ai rajouté le code juste en fin de la du contenu (càd de la boucle)
    3) Modifié quelques lignes du code pour que le « é » de catégorie s’affiche correctement

    That’s it.

    Merci à Aurélien et à son blog qui fourmille d’astuces intéressantes …

    1. Aurélien Denis auteur de l’article

      Et bien merci beaucoup de ce commentaire enjoué !

  35. Bonjour,

    petite question au sujet de ce tuto. Pour créer le fichier « sitemap.php », je dois y copier l’intégralité du code présent dans le fichier « page.php » ??

    Merci de votre réponse

    1. Aurélien Denis auteur de l’article

      Le fichier sitemap.php ressemble à peu de choses près au fichier page.php qui contient la structure standard d’une page classique du site. Donc, oui il faut en reprendre le code.

  36. Bonjour, l ‘onglet affiche un autre titre que celui que j’ ai nommé..trop bizzard, j’ ai pourtant refait mon sitemap et renommé ma page ‘tous-les-jeux’, mais j ‘ai toujours ce faut titre..vraiment je ne comprend pas. Est ce mon thème?

    1. Aurélien Denis auteur de l’article

      Quel titre as-tu à la place de celui de ta page ?

      1. « Liste des jeux » c’est pour ca que je ne comprend pas..je l’est pourtant refait de zero…

  37. Bonjour,
    J’ai voulu tenté ce tuto qui me semblait simple, et c’est vrai qu’avoir une page map est super important. Mais j’ai un problème, il n’y a quasiment rien dans ma page page.php. Et du coup, lorsque je publie ma page site map, elle est vide…
    Voilà le code de page.php:

    Je crois qu’en fait c’est le modèle pour une page vs article… pouvez-vous m’aider?!

    1. Aurélien Denis auteur de l’article

      Je ne pense pas qu’il y ait d’erreur dans ce tutoriel. Il vaut mieux utiliser un service de partage de code comme http://pastebin.com/ pour partager du code.

      1. Rassurez-vous, je ne disais pas qu’il y a une erreur dans le tutoriel! C’est juste que mon fichier page.php est quasi vide, et du coup je me dis que ca peut expliquer la page blanche créée. Je crois que je vais utiliser un plugin ca sera plus simple! Merci en tout cas pour toutes ces astuces!

  38. Une telle page est désormais présente sur WordPress Channel dans le pied de page.

    Bonjour,

    Il me semble que ce n’est plus d’actualité et de plus le lien est rompu (direction 404)

    Thierry

    1. Aurélien Denis auteur de l’article

      Exact ! Correction effectuée, merci de l’info.

  39. Bonjour, peut il y avoir incompatibilité avec un plugin?

  40. bonjour,

    cette page marche bien sauf que :
    j’ai un menu qui pointe sur des pages… celles-ci sont bien dans le sitemap, sans soucis. mais j’ai aussi des sous-menus ! ( qui sont en fait d’autres pages ) et là ben, ces autres pages ne s’affiche pas du tout dans le sitemap ! une idée ?

    1. Aurélien Denis auteur de l’article

      En passant le paramètre depth=0 sur 1 ou 2 cela devrait fonctionner à la ligne wp_list_pages.

  41. OK , merci beaucoup de l’info. en fait j’ai réussi à résoudre le problème autrement : j’ai mis les pages des sous-menus « enfants » des pages du menu… ( c’est peut-être une mauvaise solution, mais ça semble marcher !)

  42. Bonjour,
    j’ai réalisé cette manipulation sans aucun problème, le résultat est très satisfaisant hormis deux points :
    -Les accents n’apparaissent pas, ils sont remplacés par un petit losange marqué d’un « ? », sauriez vous comment y remédier ?
    – Comment faire en sorte que cette page soit reconnaissable en .xml pour les moteurs de recherche ?

    Merci d’avance pour votre réponse, et bravo pour votre site, j’y vient très régulièrement trouver les réponses à toutes mes questions

    Bien à vous,
    Tom.C.

  43. Delphine Desmarets

    Bonjour,
    Merci beaucoup pour ce tutoriel.
    Tout fonctionne parfaitement, sauf que mon plan de site s’insère dans ma barre de menu et non dans mon footer, pouvez vous me dire comment d’une part l’enlever du menu et d’autre part comment le mettre dans le footer ?
    un grand merci
    Delphine

  44. Merci beaucoup pour cette article toujours d’actualité 2 ans après sa publication. Ça marche sur mon site pour un plan que je suis en train de mettre en page.

  45. Actions Panafricanistes

    Merici @Aurélien Denis sympa pour ce partage! Bien à toi.

  46. Bonjour, très bon article; des pages sans plugin c’est toujours mieux pour l’efficience d’un site.
    Bon après avoir intégré ce code dans un nouveau template tout tourne parfaitement mais je souhaiterai savoir comment créer des listes décalées selon le niveau des pages ou elles sont.
    Page
    sous page
    sous – sous page
    sous – sous page
    Page
    etc….
    si vous avez des pistes je suis preneur.

    merci par avance.

    1. ah les espaces n’ont pas fonctionné, j’utilise donc l’underscore, donc je voulais dire:
      Page
      __sous page
      ____sous – sous page
      ____sous – sous page
      Page

  47. Bonjour, merci pour ce tuto qui rend bien service.
    J’ai quand même un léger souci, à savoir que j’aimerai exclure une catégorie de la section:

    Articles par catégories
    cat_ID);
    ?>

    Et là franchement je butte, j’ai joué du ‘exclude’,du (‘cat=-99’), et testé l’idée de Djib’s ici https://wpchannel.com/exclure-categorie-loop-wordpress/#comment-16798
    Le problème avec cette dernière c’est que je ne sais pas lui faire dire:

    if ($query->is_page(‘505’))

    La catégorie à exclure est un peu comme la « non-classé » qui me sert à classer des trucs en back office, et donc dans le sitemap j’y trouve des doublons de posts. Pas terrible…

  48. Petite question:

    Est-il possible d’adapter ce code afin de générer depuis le PHP un fichier XML pour soumettre le sitemap à google?

    Merci d’avance!

  49. Je vais peut-être passé pour un c.. mais dans mon installation la page (page.php) n’y figure pas?
    Que faire j’utilise Atahualpa 3.7.8 et je ne trouve pas cette page.

    Merci!

  50. miss Pakou

    bonjour,
    j ai appliqué les consignes et suis arrivée à un bon résultat. sauf que les points ( li ) sont un peu « mangés ». ils n apparraissent pas complètement. et cela ne fait pas très propre. il faudrait faire un saut de ligne entre l affichage des pages et des pages/enfants. comment faire ?
    dans l espoir que qqn a eu le même problème que moi !

  51. Merci, cela me conforte dans l’idée d’utiliser une bonne 404 personnalisée avec l’intégration d’un SiteMap propre ( au lieu d’une 301 ) dans le cas de pages obsolètes par exemple .

  52. clemence.izm

    Nice! Merci, très interessant, utile + didactique.

  53. Bonsoir,
    Merci pour le code, fonctionne parfaitement sur le site principale mais rien sur les sous domaine (je suis en wpmu) pourtant je renseigne bien le thème enfant à la place de « textdomain ». Merci d’avance si vous avez une sollution.

    1. Aurélien Denis auteur de l’article

      Je n’ai pas testé en multisite. Pour info, le textdomain sert juste pour la traduction (rien à voir avec les sous-domaines).

  54. Louis Grandjean

    Bonjour,

    Je viens de mettre le bout de code mai, j’ai un souci par raport au placement sur la page en ligne, tous s’affiche bien mai a gauche alors que si on regarde les autre pages tous est écrit au milieu, comment faire….

    Lien : http://www.clubing-night-radio.com/plan-du-site/

    Code :

    

    <a title="Full content" href="feed: »>
    <a title="Comment Feed" href="feed: »>

    have_posts()) : $archive_query->the_post(); ?>

    <a href=" » rel= »bookmark » title= »Permanent Link to « >
    ()

  55. Tout fonctionne à merveille, sur thème principal comme sur thème enfant. Il n’y a qu’a styliser l’affichage. Merci pour ces explications précises !

  56. Bonjour Aurélien,

    Petite question comment faire si le nom du post choisit s’appelle : book (Attention ce n’est pas une catégorie). Je ne veux pas afficher mes articles. Que dois-je modifier dans la ligne suivante ?

    have_posts()) : $archive_query->the_post(); ?>

    Cordialement,
    Ps : je débute sur WordPress

  57. Mammie Net

    Super, cet article, en fait je cherche un moyen d’afficher en liste le contenu d’un (long) menu, est il possible de le faire par ce biais ? Si oui, comment faire pour limiter le sitemap à un seul menu ?

    1. Aurélien Denis auteur de l’article

      Afficher le contenu d’un menu dans un sitemap ? Euh oui en utilisant des fonctions pour afficher les menus et en faisant du CSS… mais ce n’est plus vraiment un plan de site…

  58. damiendlm

    Bonjour Aurélien,
    Merci pour ce tuto. J’ai une question :
    Si on a activé le plugin SEO Yoast et la partie Sitemap, ce n’est plus la peine d’installer ce plugin ?
    Cordialement,
    Damien

    1. Aurélien Denis auteur de l’article

      Oui le plugin SEO de Yoast fait tout.

  59. Dominique Fortier

    Bonjour Aurélien,
    J’ai fait ce que tu dis pour faire mon Plan du site. Ça marche en partie, mais j’aimerais l’avoir dans l’ordre d’apparition de mes onglets de mon Header. Aussi, je n’ai jamais trouvé la section ‘div wrapper2’ dans le fichier ‘page.php’ comme on le voit dans le tutoriel. Je travaille dans la version 3.8 du thème Fortytwentyfour. Tu peux me conseiller?

    1. Aurélien Denis auteur de l’article

      Il convient d’adapter le tutoriel à la structure HTML de ton thème.

      1. Dominique Fortier

        Merci pour ta réponse. J’ai pas réussi à placer la liste dans l’ordre de mon menu (personnalisé), mais en tout cas, je peux voir mon plan de site correctement disposé. C’est un début.

  60. Bonjour,
    le sitemap marche bien, en revanche je suppose que je dois l’affiner, car il s’agit d’un site marchant et que mes produits ne sont pas visibles par catégories, seuls les articles et les pages.
    Par ailleurs, je suppose qu’on peut y ajouter un peu de CSS, car pour le moment tout est « ramassé » sur le côté gauche de ma page et c’est imbitable. J’ai essayé via le custom. css de mon thème, et aussi avec Easy Js/CSS un petit plugin que j’aime beaucoup et qui marche normalement très bien, mais là ça reste inopérant.

    à signaler quand même que j’ai eu un peu de mal à trouver le fameux texdomain… pour les néophytes tout n’est pas évident

    merci pour votre réponse sur le CSS

Les commentaires sont fermés.