webleads-tracker

WordPress & Référencement naturel
Mes servicesWordPress - Référencement
Hébergement WordPress
Vous êtes ici : SeoMix » WordPress » Référencement WordPress » Fil d’Ariane & chemin de navigation sur WordPress

Fil d’Ariane & chemin de navigation sur WordPress

Attention : Code mis à jour le 02/04/2013

Un fil d'Ariane pour aider les visiteursLe chemin de navigation, également appelé Fil d'Ariane, est un excellent outil pour l'ergonomie et pour le référencement.

J'en avais déjà parlé dans un des premiers articles du blog sur 21 hacks pour 21 plugins WordPress. J'avais justement donné à cette occasion un hack permettant d'ajouter un chemin de navigation, mais celui-ci n'était pas suffisamment optimisé ni pour le référencement, ni pour le visiteur. C'est désormais corrigé dans ce guide.

Le fil d’Ariane, c'est quoi ?

Le fil d'Ariane sert à plusieurs choses sur un site Internet. Pour un visiteur, il lui permet de savoir exactement où il se trouve, tout en lui donnant accès à des options de navigation supplémentaires, pour pouvoir par exemple se rendre dans la catégorie parente quand il se situe dans un article.

Un fil d'Ariane sur WordPress pour le visiteur

Avec un fil d'Ariane, le visiteur sait où il est

Pour le moteur de recherche, cela a un double intérêt : cela faciliter l'indexation de tous les contenus du site et lui permet également de mieux comprendre la structure du site Internet et le maillage interne entre les différentes publications. On donne donc plus de sens à ses articles, et on s'assure que les différents robots des moteurs les trouve tous.

Voici deux exemples. Ici, le chemin de navigation de SeoMix ressemble à cette image :

Fil d'Ariane sur WordPress

Un exemple de fil d'Ariane sur WordPress

Et voici le fil d'Ariane de mon nouveau blog WordPress dédié au jeu vidéo Skyrim:

chemin de navigation sur WordPress

Un second exemple de chemin de navigation sur WordPress

Historique du code

  • 27/04/2012 : prise en compte des pages parentes.
  • 15/10/2012 : prise en compte des pages définies dans l'administration de WordPress comme étant une page statique ou une page listant des articles.
  • 02/04/2013 :
    • correction de bugs et amélioration des performances du code.
    • vous avez la possibilité de modifier certains paramètres après le passage "// Global vars", notamment pour changer le séparateur par défaut.

Un chemin de navigation sur WordPress

Pour installer facilement un fil d'Ariane sur le CMS WordPress, rien n'est plus simple. Voici le code à ajouter dans le fichier functions.php de votre thème :

/**
 BreadCrumbs
 * Author : Daniel Roch
 */

  // Get parent categories with schema.org data
  function seomix_content_get_category_parents($id, $link = false,$separator = '/',$nicename = false,$visited = array()) {
  $final = '';
  $parent = &get_category($id);
  if (is_wp_error($parent))
    return $parent;
  if ($nicename)
    $name = $parent->name;
  else
    $name = $parent->cat_name;
  if ($parent->parent && ($parent->parent != $parent->term_id ) && !in_array($parent->parent, $visited)) {
    $visited[] = $parent->parent;
    $final .= seomix_content_get_category_parents( $parent->parent, $link, $separator, $nicename, $visited );
  }
  if ($link)
    $final .= '<span typeof="v:Breadcrumb"><a href="' . get_category_link( $parent->term_id ) . '" title="Voir tous les articles de '.$parent->cat_name.'" rel="v:url" property="v:title">'.$name.'</a></span>' . $separator;
  else
    $final .= $name.$separator;
  return $final;}

  // Breadcrumb
  function seomix_content_breadcrumb() {
  // Global vars
  global $wp_query;
  $paged = get_query_var('paged');
  $sep = ' &raquo; ';
  $data = '<span typeof="v:Breadcrumb">';
  $dataend = '</span>';
  $final = '<div xmlns:v="http://rdf.data-vocabulary.org/#">Vous &ecirc;tes ici : ';  
  $startdefault = $data.'<a title="'. get_bloginfo('name') .'" href="'.home_url().'" rel="v:url" property="v:title">'. get_bloginfo('name') .'</a>'.$dataend;
  $starthome = 'Accueil de '. get_bloginfo('name');

  // Breadcrumb start
  if ( is_front_page() && is_home() ){
    // Default homepage
    if ( $paged >= 1 )    
      $final .= $startdefault;
    else
      $final .= $starthome;
  } elseif ( is_front_page() ){
    //Static homepage
    $final .= $starthome;
  } elseif ( is_home() ){
    //Blog page
    if ( $paged >= 1 ) {  
      $url = get_page_link(get_option('page_for_posts'));  
      $final .= $startdefault.$sep.$data.'<a href="'.$url.'" rel="v:url" property="v:title" title="Les articles">Les articles</a>'.$dataend;}
    else
      $final .= $startdefault.$sep.'Les articles';
  } else {
    //everyting else
    $final .= $startdefault.$sep;}

  // Prevent other code to interfer with static front page et blog page
  if ( is_front_page() && is_home() ){// Default homepage
  } elseif ( is_front_page()){//Static homepage
  } elseif ( is_home()){//Blog page
  }
  //Attachment
  elseif ( is_attachment()){
    global $post;
    $parent = get_post($post->post_parent);
    $id = $parent->ID;
    $category = get_the_category($id);
    $category_id = get_cat_ID( $category[0]->cat_name );
    $permalink = get_permalink( $id );
    $title = $parent->post_title;
    $final .= seomix_content_get_category_parents($category_id,TRUE,$sep).$data."<a href='$permalink' rel='v:url' property='v:title' title='$title'>$title</a>".$dataend.$sep.the_title('','',FALSE);}
  // Post type
  elseif ( is_single() && !is_singular('post')){
     global $post;
     $nom = get_post_type($post);
     $archive = get_post_type_archive_link($nom);
     $mypost = $post->post_title;
     $final .= $data.'<a href="'.$archive.'" rel="v:url" property="v:title" title="'.$nom.'">'.$nom.'</a>'.$dataend.$sep.$mypost;}
  //post
  elseif ( is_single()){
    // Post categories
    $category = get_the_category();
    $category_id = get_cat_ID( $category[0]->cat_name );
    if ($category_id != 0)
      $final .= seomix_content_get_category_parents($category_id,TRUE,$sep);
    elseif ($category_id == 0) {
      $post_type = get_post_type();
      $tata = get_post_type_object( $post_type );
      $titrearchive = $tata->labels->menu_name;
      $urlarchive = get_post_type_archive_link( $post_type );
      $final .= $data.'<a class="breadl" href="'.$urlarchive.'" title="'.$titrearchive.'" rel="v:url" property="v:title">'.$titrearchive.'</a>'.$dataend;}
    // With Comments pages
    $cpage = get_query_var( 'cpage' );
    if (is_single() && $cpage > 0) {
      global $post;
      $permalink = get_permalink( $post->ID );
      $title = $post->post_title;
      $final .= $data."<a href='$permalink' rel='v:url' property='v:title' title='$title'>$title</a>".$dataend;
      $final .= $sep."Commentaires page $cpage";}
    // Without Comments pages
    else
      $final .= the_title('','',FALSE);}
  // Categories
  elseif ( is_category() ) {
    // Vars
    $categoryid       = $GLOBALS['cat'];
    $category         = get_category($categoryid);
    $categoryparent   = get_category($category->parent);
    //Render
    if ($category->parent != 0)
      $final .= seomix_content_get_category_parents($categoryparent, true, $sep, true);
    if ( $paged <= 1 )
      $final .= single_cat_title("", false);
    else
      $final .= $data.'<a href="' . get_category_link( $category ) . '" title="Voir tous les articles de '.single_cat_title("", false).'" rel="v:url" property="v:title">'.single_cat_title("", false).'</a>'.$dataend;}
  // Page
  elseif ( is_page() && !is_home() ) {
    $post = $wp_query->get_queried_object();
    // Simple page
    if ( $post->post_parent == 0 )
      $final .= the_title('','',FALSE);
    // Page with ancestors
    elseif ( $post->post_parent != 0 ) {
      $title = the_title('','',FALSE);
      $ancestors = array_reverse(get_post_ancestors($post->ID));
      array_push($ancestors, $post->ID);
      $count = count ($ancestors);$i=0;
      foreach ( $ancestors as $ancestor ){
        if( $ancestor != end($ancestors) ){
          $name = strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) );
          $final .= $data.'<a title="'.$name.'" href="'. get_permalink($ancestor) .'" rel="v:url" property="v:title">'.$name.'</a>'.$dataend;
          $i++;
          if ($i < $ancestors)
            $final .= $sep;
        }
        else
          $final .= strip_tags(apply_filters('single_post_title',get_the_title($ancestor)));
        }}}
  // authors
  elseif ( is_author() ) {
    if(get_query_var('author_name'))
        $curauth = get_user_by('slug', get_query_var('author_name'));
    else
        $curauth = get_userdata(get_query_var('author'));
    $final .= "Articles de l'auteur ".$curauth->nickname;}  
  // tags
  elseif ( is_tag() ){
    $final .= "Articles sur le th&egrave;me ".single_tag_title("",FALSE);}
  // Search
  elseif ( is_search() ) {
    $final .= "R&eacute;sultats de votre recherche sur \"".get_search_query()."\"";}    
  // Dates
  elseif ( is_date() ) {
    if ( is_day() ) {
      $year = get_year_link('');
      $final .= $data.'<a title="'.get_query_var("year").'" href="'.$year.'" rel="v:url" property="v:title">'.get_query_var("year").'</a>'.$dataend;
      $month = get_month_link( get_query_var('year'), get_query_var('monthnum') );
      $final .= $sep.$data.'<a title="'.single_month_title(' ',false).'" href="'.$month.'" rel="v:url" property="v:title">'.single_month_title(' ',false).'</a>'.$dataend;
      $final .= $sep."Archives pour ".get_the_date();}
    elseif ( is_month() ) {
      $year = get_year_link('');
      $final .= $data.'<a title="'.get_query_var("year").'" href="'.$year.'" rel="v:url" property="v:title">'.get_query_var("year").'</a>'.$dataend;
      $final .= $sep."Archives pour ".single_month_title(' ',false);}
    elseif ( is_year() )
      $final .= "Archives pour ".get_query_var('year');}
  // 404 page
  elseif ( is_404())
    $final .= "404 Page non trouv&eacute;e";
  // Other Archives
  elseif ( is_archive() ){
    $posttype = get_post_type();
    $posttypeobject = get_post_type_object( $posttype );
    $taxonomie = get_taxonomy( get_query_var( 'taxonomy' ) );
    $titrearchive = $posttypeobject->labels->menu_name;
    if (!empty($taxonomie))
      $final .= $taxonomie->labels->name;
    else
      $final .= $titrearchive;}
  // Pagination
  if ( $paged >= 1 )
    $final .= $sep.'Page '.$paged;
  // The End
  $final .= '</div>';
  echo $final;}

Une fois cette étape réalisée, rendez-vous dans les autres fichiers du thème pour y ajouter ce code, ce qui ajoutera le chemin de navigation.

<?php if (function_exists('seomix_content_breadcrumb')) seomix_content_breadcrumb();?>

Vous devrez répéter cette étape dans l'ensemble des fichiers de votre thème WordPress, à savoir dans :

  • home.php
  • index.php
  • single.php
  • page.php
  • category.php
  • author.php
  • archive.php
  • ...

Si votre thème est bien conçu, il est possible que vous n'ayez qu'un seul fichier à changer pour ajouter le fil d'Ariane, par exemple avec le fichier header.php si celui-ci est commun à toutes les pages du site et qu'il inclut le haut de vos pages.

L'avantage de ce fil d'Ariane

Pas mal de personne vont me dire que certains plugins WordPress le font très bien, ou qu'il existe d'autres hacks sur le même thème.

Les avantages de celui donné dans cet article sont multiples !

  • pas de plugins à installer, donc pas de mise à jour à faire ni de ralentissement de l'administration.
  • Le chemin de navigation ne fait pas de lien sur lui-même, ce qui aurait nuit à l'expérience utilisateur et au référencement.
  • Ce fil d'Ariane inclut les micro-données de Schema.org pour faciliter l'intégration de ces données par Google, et donc améliorer le référencement de WordPress.

Le dernier point vous donnera un rendu comme celui-ci dans les moteurs de recherche :

L'affichage du fil d'Ariane dans Google

L'affichage du fil d'Ariane dans Google

Un fil d'Ariane mis à jour

Comme n'importe quel code et snippet WordPress, ceux-ci doivent évoluer. Voici l'historique des modifications :

  • 02/04/2013
    • Optimisation des performances du code
    • Fil d'ariane entièrement compatible avec les custom post types et custom taxonomies
    • Le code fonctionne parfaitement pour les pages d'accueil statiques et pour la page statique d'article.
  • 19/04/2012
    • Compatibilité du chemin de navigation avec le plugin Event Manager
    • Correction du fil d'Ariane pour les pages enfant
    • Correction de l'affichage du nom des sous-catégories
    • Un fil d'Ariane désormais compatible avec vos taxonomies et vos customs post types.
    • Amélioration de l'affichage des archives, notamment par date.

Voilà, désormais ce code devrait vous permettre d'afficher un fil d'Ariane parfait pour le CMS WordPress, tant pour le visiteur que pour le moteur de recherche.

Les thèmes relatifs

Voici les thématiques abordées par Fil d’Ariane & chemin de navigation sur WordPress:

128 commentaires
  1. Sébastien d'Insidedaweb
    6 messages

    Sébastien d'Insidedaweb - Le 18 novembre 2011, 09:17

    T’as pas mis une capture de tous les résultats sur référencement WordPress. Dommage pour nous ;)

    Et comme tu parles de schema, un petit lien vers un article publié ce matin sur le plugin schemaforwordpress sur notre blog ;)

  2. Média Camp
    4 messages

    Média Camp - Le 18 novembre 2011, 09:26

    Je n’utilise plus wordpress après avoir développé un CMS en interne, mais on a eu la même phase de réflexion pour l’intégration du fil d’ariane sur les blogs.

    Utilisation de shema.org, pas de lien sur lui même pour la page courante… le tout couplé à une arborescence adéquate pour le site et ça donne une excellent prise en compte dans les serp (snippet).

    Donc, je confirme pour utiliser la même méthode hors wordpress, c’est très efficace.

  3. Germain
    4 messages

    Germain - Le 18 novembre 2011, 09:52

    Merci pour cet article. Je ne savais pas trop comment faire pour mettre un fil d’Ariane, voilà une bonne partie du travail donnée par Seomix ;) Merci

  4. Naouak
    5 messages

    Naouak - Le 18 novembre 2011, 09:53

    Un grand merci pour cette info. je test ça ce midi à ma pause :) je reviendrai faire mon retour d’expérience :)

  5. Sébastien
    6 messages

    Sébastien - Le 18 novembre 2011, 10:45

    Juste une légère précision. Il faut modifier l’attribut title dans la deuxième ligne, pour que lien sur votre page d’accueil ne soit pas « tagé » SeoMix ;)

  6. Daniel Roch
    713 messages

    Daniel Roch - Le 18 novembre 2011, 10:56

    C’est corrigé Sébastien ;)

  7. sebastien
    6 messages

    sebastien - Le 18 novembre 2011, 11:16

    Bon après j’arrête les commentaires :)
    Peux-tu indiquer où insérer la balise strong pour que dernier soit en gras ?
    On a testé, sans succès ;)

  8. Bert
    3 messages

    Bert - Le 18 novembre 2011, 11:20

    Oh, toi qui nous a fais une belle présentation de WordPress SEO lors du SEO Camp Day de Nantes, t’aurais pu nous en parler ici aussi ;) (menu « Internal Links »)

  9. Olivier Duffez
    5 messages

    Olivier Duffez - Le 18 novembre 2011, 12:12

    Merci Daniel pour cet article intéressant. A noter que l’utilisation d’un code compatible schema.org ne garantit pas l’affichage des résultats avec fil d’ariane dans les SERP Google (dis-moi si je me trompe).
    Inversement, on peut avoir cet affichage dans les SERP sans utiliser de données structurées particulières dans son code HTML (c’est le cas de bcp de monde).

  10. Kalagan
    2 messages

    Kalagan - Le 18 novembre 2011, 12:32

    Intéressant cet article sur l’intégration d’un fil d’arianne dans WordPress.

    j’aurais quand me^me une question : si un article est « raccroché » à plusieurs catégories, est-il judicieux d’installer un fil d’arianne ?

    Et dans ce cas, comment choisir la catégorie à afficher ?

  11. Agence Web
    4 messages

    Agence Web - Le 18 novembre 2011, 13:40

    @Olivier Duffez
    Oui, j’ai observé cela également.
    Je pense que l’un n’empêche pas l’autre.
    Si un site possède une arborescence logique et claire, il est probable que l’affichage avec fil d’ariane soit retrouvé dans les SERP même sans fil d’ariane.

    A l’inverse, l’utilisation d’un fil d’ariane compatible shema.org au sein d’un site mal conçu ne garantit pas le résultat.

  12. Antoine
    3 messages

    Antoine - Le 18 novembre 2011, 14:17

    Merci pour le code :)
    Pour avoir testé l’ajout des microdata sur le fil d’Ariane d’un site, j’ajouterai que l’apparition de ce fil dans les SERPs a été très rapide.
    Par contre, petite question, comment résous-tu le problème de lien doublon issu de l’affichage du fil d’Ariane (typiquement, un lien vers la catégorie supérieure dans le fil d’Ariane et un 2ème lien vers cette catégorie dans le menu) ?

  13. Daniel Roch
    713 messages

    Daniel Roch - Le 18 novembre 2011, 14:39

    @Séabstien : pour le gras, il faut placer la balises strong à chaque élément final. Par exemple, autour de la fonction get_the_title pour les pages single.

    @Antoine : impossible à résoudre comme problème. Mais en SEO, il faut faire attention à ne pas vouloir toujours tout sur-optimiser. ;)

  14. Bert
    3 messages

    Bert - Le 18 novembre 2011, 14:42

    @Antoine : C’est pas grave, vaut mieux laisser comme ça plutôt que de se prendre la tête sur ce détail SEO afin de tenter d’optimiser son linking interne.

    Non, vraiment, jouer la carte du naturel sur ce coup est la meilleure des choses à faire ;)

    Edit : Grillé par Daniel.

  15. Fabien
    34 messages

    Fabien - Le 18 novembre 2011, 15:49

    J’ai mis un fil d’Ariane depuis un moment déjà sur mon site mais je l’ai planqué en « spéciale dédicace googlebot » et ça donne un fil d’Ariane sympa – et absolument JAMAIS cliqué – depuis les résultats de recherche Google : http://pix-geeks.com/webmaster/breadcrumb-liens-site-pagerank/

    Je ne trouve pas forcément que ça apporte tant d’info que ça à l’internaute pour un blog quand les menus de navigations reprennent déjà les intitulés de catégories

    Maintenant si on a tout une tripotée de sous-catégories, je ne dis pas !

  16. Antoine
    3 messages

    Antoine - Le 18 novembre 2011, 15:49

    Merci @Daniel et @Bert pour vos réponses. Je pense que je suis trop omnibulé par le PR :)

  17. Le Juge
    49 messages

    Le Juge - Le 18 novembre 2011, 17:19

    Salut Daniel – Bien le petit tuto tres utile et simple a la fois – bien expliqué – a priori meme un gros noob comme moi peu mettre en place un Fil d’ariane sur son WP

  18. Screenfeed
    17 messages

    Screenfeed - Le 18 novembre 2011, 20:00

    Je n’ai pas encore fouillé dans le code de ce breadcumbs mais il me parait bien :)
    Il faudra que je regarde ce qu’il donne pour les custom post types et taxonomies.

    Merci beaucoup Daniel pour ce snippet, en plus je ne connaissais pas les micro-datas à utiliser à ce niveau, c’est chose faite \o/
    Greg

  19. Exar Kun
    2 messages

    Exar Kun - Le 19 novembre 2011, 10:31

    Bonjour,
    merci pour ce script intéressant et certainement plus performant qu’un plugin WordPress, mais (désolé pour la question peut-être noob) que se passe-t-il lors d’une mise à jour de WordPress si l’un des fichiers modifiés à la main doit être mis à jour automatiquement ? On perd ces modifications ?

  20. axel
    2 messages

    axel - Le 20 novembre 2011, 00:43

    Wah c’est hyper compliqué!?

    Moi je fais juste : bloginfo(‘home’) >> category_link() >> the_title() et c’est plié ;-)

    @exar: en théorie ton fichier functions est dans ton répertoire template et n’est pas modifié lors des mises à jour.

  21. Nathalie
    2 messages

    Nathalie - Le 22 novembre 2011, 23:01

    Bonsoir,
    Je viens de tenter d’insérer le code dans le fichier functions.php mais en cliquant sur « enregistrer les modifications », horreur écran blanc !
    Je suis un peu en panique là car mon site n’est plus accessible et je ne peux plus non plus accéder à mon interface administrateur !
    Quelqu’un peut-il me venir en aide car je ne sais absolument pas quoi faire !
    Merci d’avance
    Nathalie

  22. Daniel Roch
    713 messages

    Daniel Roch - Le 23 novembre 2011, 09:14

    @Nathalie : je viens de tester mon code d’ajout de fil d’ariane et tout est normal. En allant sur votre site, j’ai vu que le message d’erreur semble venir d’un autre souci : lors de votre modification, vous avez surement supprimé un élément important de votre thème. Le mieux, c’est d’utiliser une connexion FTP pour accéder à votre serveur pour corriger le problème, ou de contacter votre hébergeur pour voir ce qu’il peut faire pour vous.

  23. Sébastien
    6 messages

    Sébastien - Le 23 novembre 2011, 09:16

    Bonjour Nathalie,

    Tu dois toujours pouvoir accéder à ton site par FTP. Connectes toi dessus, /www/wp-content/themes/tonTheme/single.php.

    Tu pourras éditer le code que tu viens d’ajouter pour soit supprimer ta modification, soit voir où se situe ton erreur, car le code donnée par SEOMix fonctionne très bien (pour preuve notre site).

    @seomix : tu devrais ajouter une petite ligne sur ‘pensez à bien sauvegarder votre fichier avant toutes modifications’. Ca mange pas de pain. ;)

    Bon courage

  24. buzut
    2 messages

    buzut - Le 23 novembre 2011, 12:36

    t’as fais des tests sur l’imprect du breadcrumb niveau référencement ? Une idée de l’impact réel ?
    J’ai un site sur lequel je me tate à en mettre un donc si ça a un impact important je le met, sinon…

  25. Nathalie
    2 messages

    Nathalie - Le 23 novembre 2011, 22:34

    @ Daniel : Mon message n’avait absolument pas pour but de dire que votre code n’était pas bon. Je débute dans wordpress et n’y connais quasiment rien en html donc oui, j’ai effectivement dû faire une mauvais manip’ ! D’ailleurs j’étais venue sur ce site pour son contenu de qualité donc pas de souci, je suis seule responsable de mon crash !

    @ Daniel et @ Sébastien : J’ai contacté mon hébergeur ce matin et j’ai pu récupérer une version de sauvegarde donc je respire ! Car j’ai bien cru que j’avais perdu plusieurs mois de boulot…
    Merci à vous en tout cas !

    Et je ne manquerai pas de revenir sur SEOMIX ! (même si je ne suis pas prête de retenter de toucher au code ! lol)

  26. Jerome
    1 message

    Jerome - Le 23 novembre 2011, 23:14

    Il y a un bug avec les nicenames des sous catégories non ? J’ai home > nice name parent > name enfant.

    EDIT : Mon soucis était la :
    if ($nicename)$name = $parent->slug;

    Je l’ai édité pour que ça passe mieux en :
    if ($nicename)$name = $parent->cat_name;

  27. Loïc Hélias
    6 messages

    Loïc Hélias - Le 01 décembre 2011, 16:20

    Merci à toi, j’avais déjà cette fonction d’intégrée avec Yoast SEO sur WordPress, crois tu qu’il soit préférable de la désactiver afin de ne pas surcharger mon blog?
    Seconde question: comment vérifier que cette modification est bien prise en compte et totalement opérationnelle si ce n’est que de la voir apparaître sur le blog?

    Merci

  28. Daniel Roch
    713 messages

    Daniel Roch - Le 01 décembre 2011, 18:15

    De mémoire, celui de Yoast est bien conçu donc tu peux le conserver.

    Le fil d’Ariane donné ici fonctionne parfaitement : s’il s’affiche bien, c’est que le code est bien implanté. ;)

  29. Screenfeed
    17 messages

    Screenfeed - Le 04 décembre 2011, 08:03

    Salut Daniel.

    J’aurais une question.
    Je viens de jeter un oeil aux microdatas de ton breadcrumb. En fouillant un peu sur le net pour comprendre leur signification/fonctionnement, j’ai trouvé une autre forme de microdatas sous la forme :
    <li itemscope="itemscope" itemtype="http://data-vocabulary.org/Breadcrumb">
    En fait j’ai trouvé cette forme à plusieurs endroits, ici par exemple : http://www.html-5.com/microdata/breadcrumbs/index.html

    Bref, quelle est la différence entre ces 2 notations? Est-ce la différence entre Microformats et Microdatas?
    Merci :)

  30. Daniel Roch
    713 messages

    Daniel Roch - Le 04 décembre 2011, 13:44

    Il s’agit de deux formats différents de micro-données. Pour le moment, les deux sont parfaitement acceptés par les moteurs de recherche Google, Yahoo et Bing.

  31. Screenfeed
    17 messages

    Screenfeed - Le 04 décembre 2011, 23:51

    Merci pour ta réponse Daniel.

    J’avais effectivement ma réponse sous le nez, directement dans l’url du namespace (le rdf au début).
    J’ai aussi trouvé quelques infos supplémentaires directement chez Google : https://www.google.com/support/webmasters/bin/answer.py?&answer=185417

    Encore merci pour ce fil d’Ariane (j’ai des erreurs au niveau validation html5, j’essaie de voir d’où ça vient).
    A bientôt.
    Greg

  32. Fred
    2 messages

    Fred - Le 05 décembre 2011, 13:17

    Bonjour et merci pour ce fil d’ariane.

    par contre dès que l’on rentre un peu trop en profondeur d’url,
    je perd les >> à l’affichage :

    avec les >> :

    http://www.animateur-mariage.fr/autres-prestataires-de-mariage/

    sans les >> :
    http://www.animateur-mariage.fr/autres-prestataires-de-mariage/lieux-de-reception/languedoc-roussillon/

    merci de votre aide

    Fred

  33. Screenfeed
    17 messages

    Screenfeed - Le 06 décembre 2011, 16:39

    @Fred : j’ai moi aussi constaté ce petit oubli la nuit dernière. Les » sont effectivement absents dans le foreach à la fin du fil d’Ariane. Ceci résoudra ton soucis :

    foreach ( $ancestors as $ancestor ){
                    if( $ancestor != end($ancestors) ){$rendu .= ' &raquo; <span typeof="v:Breadcrumb"><a href="'. get_permalink($ancestor) .'" rel="v:url" property="v:title">'. strip_tags( apply_filters( 'single_post_title', get_the_title( $ancestor ) ) ) .'</a></span>';}
             else {$rendu .= ' &raquo; <span>'.strip_tags(apply_filters('single_post_title',get_the_title($ancestor))).'</span>';}}}}
      $ped=get_query_var('paged');
      if ( $ped >= 1 ) {$rendu .= ' (Page '.$ped.')';}
       $rendu .= '</div>';
      echo $rendu;}

    A bientôt.
    Greg

  34. Daniel Roch
    713 messages

    Daniel Roch - Le 07 décembre 2011, 08:09

    Merci pour cette correction. J’ai d’ores et déjà mis à jour le script dans l’article.

  35. fred
    2 messages

    fred - Le 07 décembre 2011, 09:22

    @Screenfeed

    merci beaucoup pour votre aide

  36. stiv
    1 message

    stiv - Le 07 décembre 2011, 16:18

    Bonjour,

    J’ai un souci avec les tags, le fil d’ariane affiche: Vous êtes ici : site » Articles sur le Thème » titre du premier article de la page

    au lieu du titre du tag il affiche le titre du premier article

  37. Daniel Roch
    713 messages

    Daniel Roch - Le 08 décembre 2011, 07:04

    C’est corrigé ;)

  38. GeekPress
    16 messages

    GeekPress - Le 10 décembre 2011, 13:37

    Merci pour ce tuyau !

    C’est en place sur GeekPress ^^

  39. Buymeadonut
    3 messages

    Buymeadonut - Le 14 décembre 2011, 23:25

    Bonjour,

    apparemment wordpress ne veut plus utiliser get_settings(‘home’) mais home_url().

    Bonne journée :)

  40. Daniel Roch
    713 messages

    Daniel Roch - Le 15 décembre 2011, 10:40

    Effectivement, cette fonction a été dépréciée. Je viens de mettre à jour mon code de fil d’Ariane. ;)

  41. Jerom
    4 messages

    Jerom - Le 26 décembre 2011, 14:11

    Bonjour Daniel, tout d’abord merci pour ton blog les articles sont souvent très intéressants.

    J’ai apporté cette modif dans le fichier fonction.php mais après ça je ne peux plus accéder à l’admin. Aurais tu une idée ? Cela peut-il provenir du thème que j’utilise ?

  42. Daniel Roch
    713 messages

    Daniel Roch - Le 26 décembre 2011, 15:42

    Je viens de retester à l’instant mon code, et il fonctionne. Le bug peut donc venir de deux choses : soit un mauvais copier/coller, soit un plugin incompatible. Essaie de revenir au fichier précédent et refais un autre copier/coller du code.

  43. Jerome
    4 messages

    Jerome - Le 26 décembre 2011, 18:41

    J’opte pour le plugin incompatible, je vais faire mes tests en local. Merci :)

  44. Gonzague
    1 message

    Gonzague - Le 04 janvier 2012, 04:51

    Merci ! Je l’essaye sur BlogAutomobile.fr du coup :)

  45. Dekaps
    1 message

    Dekaps - Le 17 janvier 2012, 22:21

    Bonsoir,
    Merci pour le code, mais j’ai cette erreur lorsque l’on clique sur une image : soit depuis l’administration de WordPress (v3.3.1), soit depuis le site lui-même si on laisse le lien sur l’image.

    Catchable fatal error: Object of class WP_Error could not be converted to string in /homez.507/dekapsas/www/wp-content/themes/dekaps/functions.php on line 77

    La ligne 77 correspond chez moi à :
    $rendu .=  » » « .myget_category_parents($category_id,TRUE,’ » ‘). »".the_title( », »,FALSE). »";}

    Nicolas

  46. Daniel Roch
    713 messages

    Daniel Roch - Le 19 janvier 2012, 09:26

    @Dekaps : je viens de retester à l’instant, et le code fonctionne parfaitement chez moi. Essaie de le supprimer puis recopie-le une nouvelle fois.

  47. Jean Perthuis
    1 message

    Jean Perthuis - Le 23 janvier 2012, 14:11

    Je vient d’installer ton fil d’Ariane sur mon site, c’est juste génial, merci pour ton code php et tes explications bien claires. Effectivement, ce n’était pas très compliqué et je conseille à tous ceux qui travaillent sur WordPress d’installer ce fil d’Ariane.

  48. eric
    2 messages

    eric - Le 10 février 2012, 12:33

    Bonjour,

    J’ai exactement le même message d’erreur que Dekaps.

    Mais pas les même symptômes. Le fil d’ariane s’affiche parfaitement sur toutes les pages sauf sur la page « évènement » du plugin « event manager ». La liste des évènements s’affiche bien mais dès que je clique sur un évènememt en particulier j’ai le message d’erreur. J’ai essayé de déplacer le code du fil d’ariane placé dans le header vers single.php pour ne pas l’utiliser avec « event manager » mais ça n’a pas réglé le soucis. Voilà si ça peut aider à identifier le problème…

    Au passage, merci à Daniel Roch pour ces précieux conseils! (je débute sous wordpress)

  49. Daniel Roch
    713 messages

    Daniel Roch - Le 11 février 2012, 12:12

    Mon code n’a malheureusement pas été prévu pour fonctionner avec le plugin event manager. Je vais t’envoyer un mail pour voir comment corriger ma fonction dans ce cas précis.

  50. eric
    2 messages

    eric - Le 13 février 2012, 18:37

    Bonsoir, grâce à l’intervention de daniel le fil d’ariane s’affiche maintenant correctement sur mon site (en construction) avec le plugin « event manager ».

    Il m’a indiqué par mail que le code donné sur cette page a été mis à jour. Un grand MERCI pour l’écoute et la réactivité.

  51. K-rip
    6 messages

    K-rip - Le 20 février 2012, 10:45

    Merci beaucoup pour ce fil d’ariane très pratique et facile à mettre en place, c’est une bonne alternative aux différents plugins existants (qui sont souvent des usines à gaz).

  52. Grégory
    1 message

    Grégory - Le 24 février 2012, 15:00

    Bonjour,

    Comme Eric et Dekaps

    En mettant le code j’obtiens une erreur avec le plugin event manager. Cela se produit lorsque je clique sur l’evenement.

    Merci d’avance

  53. Daniel Roch
    713 messages

    Daniel Roch - Le 26 février 2012, 00:48

    @Grégory : avez-vous bien utilisé le dernier code de l’article ?

  54. ffenault
    1 message

    ffenault - Le 28 février 2012, 19:08

    Bonjour,
    Un très grand merci pour le code de mise en place du fil d’Ariane…
    Je viens de le mettre en place sur notre blog ça fonctionne nickel!!
    Florent

  55. Tonib
    2 messages

    Tonib - Le 04 mars 2012, 23:54

    Bonjour,
    Testé avec le custom post type. Sur une page de type single_mesposttypes.php, la fonction bug… Quelle serait la solution ?

  56. Daniel Roch
    713 messages

    Daniel Roch - Le 05 mars 2012, 10:55

    Effectivement, mon code ne fonctionne pas encore avec les Custom Post Types.

    Je vais voir pour corriger cela au plus vite.

  57. Tonib
    2 messages

    Tonib - Le 05 mars 2012, 13:05

    Super, tiens nous au courant !

  58. StephDotNet
    1 message

    StephDotNet - Le 12 mars 2012, 10:49

    Super pour ce bout de code qui m’a épargné du travail.

    Cependant j’ai eu un problème avec la parenté sur une page de niveau 3. Il m’a suffit de corriger la récupération des « ancestors » dans le « is_page() » avec :

    $ancestors = $post->ancestors;

    Et du coup j’ai pu accéder à l’affichage du parent (car ma page était une page fille d’une page).

    A bientôt!

  59. Stéphane Graciet
    3 messages

    Stéphane Graciet - Le 14 mars 2012, 19:51

    Bonjour

    Bien que non expert et même pas développeur, je suis parvenu à mes fins grâce ce tuto parfaitement intelligible pour un néophytes.

    Je n’ai pas réussi à trouver le bon endroit pour modifier la couleur des liens de manière à ce qu’ils soient unifiés à ma charte(Artisteer). Ça doit être un détail mais il m’a échappé.

    Merci par avance pour votre aide.

  60. Daniel Roch
    713 messages

    Daniel Roch - Le 15 mars 2012, 09:07

    Pour changer la couleur des liens dans ce fil d’Ariane, il faudrait regarder si dans votre thème WordPress comment sont créés vos liens en CSS. Quelle est l’adresse de votre site ?

  61. Stéphane Graciet
    3 messages

    Stéphane Graciet - Le 15 mars 2012, 14:36

    Merci pour votre réactivité. Le site en question : negoce-vin-bordeaux.fr

    J’utilise Artisteer et le paramétrage du comportement des liens (survol, clic, cliqué…) définit lors du paramétrage n’est pas pris en compte pour le fil d’Ariane.

    Encore merci pour votre aide.

  62. Marine
    2 messages

    Marine - Le 22 mars 2012, 09:19

    Bonjour,

    Etudiante en galére pour réaliser un mini site internet pour un cours de site web :p
    Novice dans le domaine, je navigue à droite à gauche dans les tutos et ouf enfin j’ai pu insérer un fil d’ariane sauf que…ce fil d’ariane est hors de la page principale de notre site ( théme matala). Comment faire pour changer la place du fil ?

    Merci d’avance :)
    Marine.

  63. Daniel Roch
    713 messages

    Daniel Roch - Le 23 mars 2012, 09:46

    Le souci doit avoir lieu au niveau de l’endroit où a été ajouté la fonction mybread (le deuxième code donné dans cet article). Essayez de le déplacer. ;)

  64. Mathieu
    4 messages

    Mathieu - Le 26 mars 2012, 12:25

    Bonjour,
    je viens d’insérer votre fil d’Ariane sur mon site en test et ça marche très bien au niveau de l’affichage, merci pour ces explications.

    en revanche ça me cause un souci au niveau de la création de nouvelles pages: en haut de la page d’édition j’ai ce message qui s’affiche et il est impossible ensuite de créer de nouvelles pages:

    « Warning: Cannot modify header information – headers already sent by (output started at /homez.184/tapswing/www/site/wp-content/themes/tsc/functions.php:46) in /homez.184/tapswing/www/site/wp-includes/functions.php on line 861

    Warning: Cannot modify header information – headers already sent by (output started at /homez.184/tapswing/www/site/wp-content/themes/tsc/functions.php:46) in /homez.184/tapswing/www/site/wp-includes/functions.php on line 862″

    le theme « tsc » est un theme enfant de twenty eleven qui ne contient que la page functions.php et le header.php modifiés pour l’occasion, le reste du site est d’origine.

    ces messages s’affichent même si je n’appelle pas la fonction.

    pouvez-vous m’indiquer si j’ai fait une erreur et comment la corriger.

    J’en profite pour vous remercier pour l’ensemble de votre site qui m’en apprends chaque jour!

    Merci,
    Mathieu

  65. Daniel Roch
    713 messages

    Daniel Roch - Le 26 mars 2012, 19:37

    Bonsoir, il est possible que vous ayez mal placé le code qui a été donné dans cet article. Vérifiez que vous l’avez bien placé après le ?php du début ou le ? de fin du fichier functions.php.

  66. Mathieu
    4 messages

    Mathieu - Le 26 mars 2012, 20:32

    Bonsoir,
    j’ai remarqué que le fichier functions.php du theme twentyeleven se terminait sans mettre la balise ?>

    j’ai résolu mon problème en enlevant donc cette balise à la fin du fichier functions de mon theme.

    Bizzarre, mais ça fonctionne !

    Merci !

  67. Marine
    2 messages

    Marine - Le 31 mars 2012, 20:04

    Bonsoir,
    Un merci avec un peu de retard désolé :) Les divers conseils sur le site et via les messages d’autres personnes m’ont bien aidés.
    Encore merci,

    Marine.

  68. Mathieu
    4 messages

    Mathieu - Le 04 avril 2012, 17:15

    Bonjour,

    Le code fonctionne très bien avec les pages et les articles au format par défaut.

    L’affichage du fil d’un article au format gallery fonctionne correctement (» Tests » test de galerie) mais l’ouverture d’une image génère une erreur:
    Catchable fatal error: Object of class WP_Error could not be converted to string in /homez.184/tapswing/www/site/wp-content/themes/tsc/functions.php on line 31
    il ne semble pas retrouver la catégorie.

    pour info dans mon fichier fonctions.php la ligne 31 est la suivante:
    $rendu .=  » » « .myget_category_parents($category_id,TRUE,’ » ‘). »".the_title( », »,FALSE). »";}

    il doit y avoir une exception à ajouter, mais je ne trouve pas laquelle.

    Merci pour vos lumières.

  69. Daniel Roch
    713 messages

    Daniel Roch - Le 06 avril 2012, 10:48

    Aurais-tu un exemple d’URL pour que je puisse mieux comprendre le problème de mon fil d’Ariane ?

  70. Mathieu
    4 messages

    Mathieu - Le 06 avril 2012, 14:52

    par exemple la page tapswingandco.fr/site/test-de-galerie/global/ ne fonctionne pas.
    ça n’est pas un vrai post, c’est une page de vue d’une images issue d’un article au format « galerie ». c’est pourquoi à mon avis la fonction $category[0]->cat_name ne retourne rien.
    cette page ne contient que l’image et n’a pas d’autre attributs.
    en rajoutant une condition : if ($category_id != « 0″){$rendu .= …}
    on évite évite que la fonction plante sur ce type de page. mais on a un fil d’ariane vide. en attendant je l’ai rempli avec le contenu de l’URL mais c’est pas aussi propre et ça ne marchera pas toujours.
    Merci

  71. Clotilde
    1 message

    Clotilde - Le 14 avril 2012, 10:39

    Merci beaucoup Daniel pour votre code et vos indication précises de placement. Je viens de l’installer sur mon thème, Zincious de Paddsolutions.

    Les fichiers php contiennent header. J’ai opté pour une indication du lien dans le fichier searchform, avec une répétition dans les fichier search, archives et comments. Les fichiers single et page sont servis par la présence du formulaire search. J’ai choisi que la présence du lien dans index n’avait pas d’utilité pour l’accueil. Mais peut-être pour un usage ergonomique particulier.

    Je suis ravie d’avoir trouvé votre article si utilement renseigné. Je trouve sa présentation et sa lecture à l’écran tout-à-fait agréable. Encore merci.

  72. Yo
    1 message

    Yo - Le 15 avril 2012, 22:01

    Bonjour, pour moi cela fonctionne très bien avec les catégories (merci!!!), mais cela ne prend pas en compte les parents pour les pages statiques…
    Mystère ! Est-ce le cas pour d’autres personnes ?

  73. Daniel Roch
    713 messages

    Daniel Roch - Le 16 avril 2012, 09:55

    @Yo : je note également ce souci pour le corriger dans une nouvelle version du script.

  74. MacSim
    1 message

    MacSim - Le 19 avril 2012, 14:55

    Le plugin SEO WordPress intègre maintenant un système de fil d’Ariane.

    Il est paramétrable dans l’onglet « liens internes », puis il suffit d’ajouter ce bout de code à l’endroit ou l’on veut qu’il apparaisse :

    <?php if ( function_exists(&#039;yoast_breadcrumb&#039;) ) {
        yoast_breadcrumb(&#039;','');
    }
    ?>
  75. Iceranking
    4 messages

    Iceranking - Le 19 avril 2012, 15:00

    Merci Daniel pour cette mise à jour du script du fil d’ariane :=)

  76. lodil
    1 message

    lodil - Le 17 juillet 2012, 16:17

    Bonjour et merci pour ce script il fonctionne super bien et les infos pour le mettre en place sont super claires. je voudrai juste enlever de la breadcrumb le titre de l’article sur lequel on se trouve mais ne trouve pas le code à enlever. Pouvez vous m’aider ?
    merci

  77. Bruno
    1 message

    Bruno - Le 13 septembre 2012, 14:34

    Bonjour, J’ai installé le code dans le fichier Functions et l’autre code dans les autres fichier php. Cela m’a mis une erreur en haut de chaque page. J’ai donc retiré tous les codes, mais ceux ci sont restés et j’ai des pages qui ne s’ouvrent plus.

    Voici l’adresse du blog, en vous remerciant pour votre aide : bassebruno.com/blog

    EDIT : Rebonjour, J’ai pu récupérer les sauvegardes du site. Du coup, il refonctionne correctement. N’étant pas un pro, je ne comprend ma mauvaise manipulation. Faut il mettre les codes à un endroit précis?

    Par exemple, dans le Function, j’ai mis le code après ?> Idem pour les autres, j’ai tous mis à la fin des pages php. Merci :)

  78. Daniel Roch
    713 messages

    Daniel Roch - Le 14 septembre 2012, 07:39

    Dans le fichier functions.php, il faut placer le code indiqué avant le ?> que vous indiquez.

    Pour l’autre code, il va falloir le placer exactement à l’endroit où vous voulez le faire apparaître, par exemple au dessus de vos titres d’articles.

  79. Potenzzzza
    5 messages

    Potenzzzza - Le 25 septembre 2012, 22:26

    Bonjour, Ce fil d’ariane fonctionne parfaitement, je l’utilise régulièrement et j’en suis très satisfait… à un détail près ;)

    Lorsque la page des articles est associée à une autre page, le breadcrumb se comporte comme si c’était l’accueil du site ! Pouvez-vous faire quelque chose ? Merci.

  80. Daniel Roch
    713 messages

    Daniel Roch - Le 06 octobre 2012, 09:20

    @Potennezzzza : je viens de vérifier et mon code semble parfaitement fonctionner sur des pages enfants.

  81. Potenzzzza
    5 messages

    Potenzzzza - Le 08 octobre 2012, 22:30

    @Daniel : Merci, mais je crois qu’on s’est mal compris… Quand je dis « la page des articles associée à une autre page » je veux parler de la modification des options de lecture dans réglages. Lorsqu’on sélectionne une page statique pour l’accueil et une autre pour afficher les articles !

  82. Daniel Roch
    713 messages

    Daniel Roch - Le 15 octobre 2012, 12:14

    Je viens de corriger le code du fil d’Ariane pour cette problématique ;)

  83. myrmel
    1 message

    myrmel - Le 18 octobre 2012, 14:26

    Merci pour ce morceau de code. Super utile !
    Petite suggestion pour gérer les custom taxonomy de la même manière que les catégories : ajouter

    is_tax()

    dans la condition qui gère les catégories.

    if ( is_category() OR is_tax() ){
    ...
    }
  84. Emmanuelle
    7 messages

    Emmanuelle - Le 19 octobre 2012, 15:59

    Hello Daniel,

    Super ton code, merci beaucoup !
    Bon par contre, j’aurais 2 petites questions ^^ :

    - Comment faire pour éviter d’afficher le breadcrumb en page d’accueil (pas très utile selon moi) ?
    J’ai du mal avec ton code, j’avoue…
    Si tu as une idée, je prends !

    - Quand tes titres comportent plusieurs mots, le breadcrumb va facilement s’afficher sur 2 lignes pour les niveaux >1…
    Y aurait-il moyen d’utiliser le « Titre de la navigation » (modifié et affiché dans le menu) ou autre chose de plus court que le titre de la page, en clair…?

    Suis désolée de t’embêter avec mes questions à 2 balles, amis si tu y as déjà réfléchi, tes réponses m’intéressent ^^ !

    Merci d’avance et à bientôt

  85. Daniel Roch
    713 messages

    Daniel Roch - Le 10 novembre 2012, 15:43

    @Emanuelle : j’ajoute cela à ma ToDoList ;)

  86. Daniel Roch
    713 messages

    Daniel Roch - Le 23 novembre 2012, 11:24

    Pour le titre du chemin de navigation, je ne peux malheureusement rien faore.

    Par contre, pour ne pas afficher le fil d’ariane sur la page d’accueil,; il faut remplacer le second code par :

    <?php if (!is_home()){if (function_exists('mybread')) mybread();}?>
  87. Olivier
    2 messages

    Olivier - Le 23 novembre 2012, 13:04

    Bonjour et merci pour ce code très interressant.
    Je me trouve confronté à un problème avec le fil d’arianne :

    J’ai un menu du style :

    +Home
    +Services
    —-Service 1
    —-Service 2
    —-Service 3
    —-…
    +Menu 3
    —-SousMenu 1
    —-SousMenu 2
    —-SousMenu 3
    —-…
    +Menu 4

    Les menus Parents sont des « Liens Personnalisés » grace au système de menu de wordpress 3.4.2
    Et le Fil d’arianne me sort :
    Vous êtes ici : Home >> Les articles >> Service 1
    Au lieu de
    Vous êtes ici : Home >> Services >> Service 1

    Une idée… Je tourne en rond…

    Merci d’avance!!!

  88. Emmanuelle
    7 messages

    Emmanuelle - Le 23 novembre 2012, 14:55

    Merci Daniel !
    Et pas grave pour la navigation, me débrouille autrement !

    Encore merci
    ++

  89. Daniel Roch
    713 messages

    Daniel Roch - Le 24 novembre 2012, 15:07

    @Olivier : s’il s’agit de liens personnalisés, il faudra obligatoirement coder en dur ces éléments dans le fil d’Ariane malheureusement.

  90. Olivier
    2 messages

    Olivier - Le 26 novembre 2012, 10:27

    Merci pour ta réponse…
    Mais quelque chose m’échappe…

    L’élément menu de WordPress que nous chargeons grâce au code :

    wp_nav_menu( array( 'theme_location' => 'primary' ) );

    prend bien en compte ces liens personnalisés (créés dans l’admin de wordpress : WP-Admin > Apparence > Menus > Liens Personnalisé).

    Donc il doit bien y avoir un moyen de tester la rubrique à laquelle appartient la Page ouverte? Non?

  91. May
    1 message

    May - Le 01 mars 2013, 01:58

    Bonsoir,
    j’ai un petit souci avec la recherche,
    lorsque le mot recherché n’existe pas dans mes articles, j’ai un warning qui s’affiche avant le breadcrumb
    Warning: Invalid argument supplied for foreach() in /homez.000/monsite/www/wp-includes/post.php on line 3601
    le fil d’ariane et le ‘not found’, eux, sont ok
    l’appel de la function mybread() se fait dans mon header et fonctionne formidablement bien pour tout les autres affichages !
    j’ai bien essayé de comprendre pourquoi mais là je sèche….
    autre curiosité, ce problème n’existe pas en local et n’apparait qu’en prod

  92. Potenzzzza
    5 messages

    Potenzzzza - Le 17 avril 2013, 23:19

    Bonjour et merci encore pour ce bout de code sympathique ;)

    Cependant, une petite amélioration me paraît utile concernant le cas d’un Post Type.

    Au lieu de :

    // Post type
      elseif ( is_single() && !is_singular('post')){
         global $post;
         $nom = get_post_type($post);
         $archive = get_post_type_archive_link($nom);
         $mypost = $post->post_title;
         $final .= $data.'<a href="'.$archive.'" title="'.$nom.'" rel="nofollow">'.$nom.'</a>'.$dataend.$sep.$mypost;}

    J’écrirais plutôt :

    // Post type
      elseif ( is_single() && !is_singular('post')){
         global $post;
         $nom = get_post_type($post);
         $archive = get_post_type_archive_link($nom);
         $mypost = $post->post_title;
         $label = get_post_type_object($nom)->labels->name;
         $final .= $data.'<a href="'.$archive.'" title="'.$label.'" rel="nofollow">'.$label.'</a>'.$dataend.$sep.$mypost;}

    Cela permet d’afficher le nom (au pluriel) du Post Type plutôt que le slug (tout en minuscules et sans accents) comme par exemple :

    AVANT :
    Accueil > evenement > Mon événement
    APRES :
    Accueil > Événements > Mon événement

  93. Daniel Roch
    713 messages

    Daniel Roch - Le 20 avril 2013, 17:20

    Effectivement, cette optimisation est bonne. Merci pour cet ajout à ce code de fil d’ariane WordPress.

  94. Gaël
    3 messages

    Gaël - Le 03 mai 2013, 10:16

    Bonjour !

    Pour commencer, merci pour cette fonction qui me sert régulièrement maintenant :D

    J’aurais une question cependant, la dernière « mise à jour » prend en compte les custom post types et les custom taxonomies, mais il semble que les post formats n’en fassent pas partie.. Peut-être une amélioration à apporter ?

    Je travaille dessus donc si je parviens à mes fins je partagerais ;)

    Bonne journée !

  95. Denis
    1 message

    Denis - Le 14 mai 2013, 17:00

    Bonjour,

    merci pour cet article.
    Une question architecturale ;-)

    Dans le cas d’un site ecommerce où les fiches produits sont acessibles via plusieurs chemins (mais avec une url unique pour chaque fiche produit) comment gérez-vous le fil d’ariane ?

    - est-ce qu’il peut être différent ?
    - faut-il qu’il soit unique ?
    - faut-il en faire plusieurs ?

    Merci
    D.

  96. Daniel Roch
    713 messages

    Daniel Roch - Le 16 mai 2013, 09:06

    Pour un site ecommerce, il faut déterminer le chemin principal, c’est à dire le chemin le plus logique pour trouver le produit et afficher le chemin de navigation en fonction. Le fil d’ariane doit donc être unique.

  97. Bertrand
    3 messages

    Bertrand - Le 19 mai 2013, 13:28

    Pardon mais je ne trouve pas où insérer la ligne de code pour que le fil d’ariane ne s’affiche pas sur la page d’accueil…
    Par ailleurs comment modifier sa mise en forme ?

  98. Bertrand
    3 messages

    Bertrand - Le 21 mai 2013, 09:25

    J’ai trouvé pour le code en changeant le nom de la fonction mais un petit geste s’il vous plait pour en modifier la forme (j’aimera qu’elle soit calée à gauche et en plus gros)

  99. Daniel Roch
    713 messages

    Daniel Roch - Le 22 mai 2013, 09:20

    Il faut modifier le fichier style.css de votre thème pour appliquer les modifications visuelles que vous désirez. Regardez sur Google, vous trouverez pas mal de tutoriel sur le CSS.

  100. francois
    2 messages

    francois - Le 28 mai 2013, 15:17

    Super tuto et code.
    Par contre juste une précision j’aimerais qu’il ne s’affiche pas sur la home page.
    J’ai vu qu’il y avait une partie dans le code qui y était consacré mais je n’ai pas trouvé comment faire.
    Une idée ?
    Merci d’avance !

  101. Daniel Roch
    713 messages

    Daniel Roch - Le 29 mai 2013, 08:26

    Il suffit de remplacer le code d’ajout par celui-ci :

    <?php if (function_exists('seomix_content_breadcrumb')) {
        if ( !is_home() || !is_front_page() )
            seomix_content_breadcrumb();
    }
    ?>
  102. francois
    2 messages

    francois - Le 29 mai 2013, 09:15

    Super merci !!

  103. léa
    3 messages

    léa - Le 04 juin 2013, 21:33

    Bonjour,

    Je suis une grande, très grande débutante en php (encore plus avec wordpress) et au risque de paraître stupide…
    Je souhaiterais ajouter un fil d’Ariane à un thème basique (Twenty Eleven), cependant j’ai lu qu’il valait mieux éviter de modifier le thème directement et de plutôt faire ses modifs dans un « child theme » car cela pourrait poser des problèmes lors des mises à jour…
    Alors ma question est : est-il possible que les modifs apportées aux différentes pages (home, index, single…) soient à réitérer lors d’une mise à jour éventuelle ?
    Par avance, merci :)

  104. Daniel Roch
    713 messages

    Daniel Roch - Le 05 juin 2013, 08:56

    Si les modifications sont faites dans le thème principal, elles seront écrasées à chaque mise à jour du thème et devront donc être refaites. Le mieux est donc effectivement de créer un child thème.

  105. léa
    3 messages

    léa - Le 05 juin 2013, 12:18

    Hum… C’est bien ce qui me semblait. Mais dans ce cas, est-ce que les fonctions développées dans le child theme viendront écrasées celles du thème parent ?
    Désolée si ça semble évident pour certains… :/

  106. Daniel Roch
    713 messages

    Daniel Roch - Le 08 juin 2013, 14:22

    Oui, tout ce qui se trouve dans le childtheme vient écraser systématiquement les fonctionnalités du thème parent.

  107. Cédric
    5 messages

    Cédric - Le 12 juillet 2013, 14:51

    Bonjour,

    L’année ne s’affiche pas correctement dans le fil d’ariane lorsqu’on affiche la page d’archives d’un mois ou d’une année. J’ai toujours la valeur 0 au lieu de 2013 ! As-tu une solution ?

  108. Daniel Roch
    713 messages

    Daniel Roch - Le 14 juillet 2013, 13:09

    Il faut effectivement que je corrige ce défaut. Mais je conseille aussi de ne jamais afficher les archives par date car elles ont rarement un intérêt pour le moteur de recherche ou l’internaute.

  109. Cédric
    5 messages

    Cédric - Le 16 juillet 2013, 09:11

    Bonjour,
    Le bug que je reporte n’est pas bien grave en soi, de même que celui du message précédent, mais je pense qu’il vaut le coup d’être étudié.
    Lorsqu’on visualise un attachment (image…) relié à une sous-page, le fil d’ariane zappe les ancêtres de la sous-page. Je cherche à rajouter cela dans la partie is_attachment() mais sans succès. Pouvez-vous faire quelque chose ?
    Merci.

  110. Marc
    1 message

    Marc - Le 17 juillet 2013, 16:52

    Juste un petit commentaire (sans lien xD) pour te remercier pour ce code. C’est la moindre des choses ^^

    Je viens de l’installer et ca fonctionne nikel.

    Merci.

  111. Maud
    2 messages

    Maud - Le 27 août 2013, 14:50

    Bonjour et merci pour ce film d’ariane que j’ai mis dans mon footer et qui fonctionne très bien !

    j’ai juste une question : est il possible que le fil d’ariane n’apparaisse pas sur la page d’accueil ?

    merci!
    Maud

  112. Daniel Roch
    713 messages

    Daniel Roch - Le 30 août 2013, 09:23

    Oui, en utilisant la fonction if (is_home()) lors de l’ajout du fil d’ariane.

  113. Maud
    2 messages

    Maud - Le 30 août 2013, 09:43

    Bonjour et merci Daniel pour la réponse.
    Pouvez-vous préciser où je dois coller le code if (is_hone()) ? à la suite du code du fil d’ariane dans mon footer ?

    Avec mes remerciements,
    Maud

  114. Daniel Roch
    713 messages

    Daniel Roch - Le 02 septembre 2013, 09:45

    Voilà le code à utiliser :

    <?php if ( !is_home() ) {
      if (function_exists('seomix_content_breadcrumb')) seomix_content_breadcrumb();
    }
    ?>
  115. Marine
    1 message

    Marine - Le 13 septembre 2013, 14:59

    Bonjour,
    J’utilise ce fil d’ariane qui fonctionne très bien, merci à vous!
    J’aurais une petite question, est-il possible que les nom utilisés pour le fil d’ariane soient ceux du menu et non les titres des pages?
    (Mes pages ont un nom plus long que celui figurant sur le menu.)
    Merci d’avance.

  116. Daniel Roch
    713 messages

    Daniel Roch - Le 15 septembre 2013, 21:31

    Malheureusement, ce n’est pas possible.

  117. Tom
    3 messages

    Tom - Le 04 octobre 2013, 20:55

    Bonjour, je souhaiterais savoir s’il est possible d’afficher plusieurs catégories pour un même article dans le fil d’ariane: pour le moment, le fil d’ariane n’affiche qu’une catégorie (en gros il en choisit une). par exemple: un jeu sur ios et android à la fois (qui pour le moment n’afficherait qu’android par exemple dans le fil d’ariane).
    D’avance merci.

  118. Daniel Roch
    713 messages

    Daniel Roch - Le 07 octobre 2013, 08:40

    Malheureusement non, et surtout je ne le conseille pas. Si un article est présent dans plusieurs catégories, cela veut souvent dire que la structure n’est pas assez précise pour le visiteur.

  119. Tedj Nemoura
    1 message

    Tedj Nemoura - Le 12 novembre 2013, 14:07

    Bonjour, très bon fil d’ariane ! Merci encore pour cet article qui m’a sauvé du poids d’un plugin lourd et mal optimisé ou qui n’est pas assez personnalisable.

    Par contre, j’aurais une question : comment afficher la catégorie parente d’une Custom Taxonomie ? J’ai beau chercher, je ne trouve pas :( !

    Merci d’avance pour les réponses futures :).

  120. Daniel Roch
    713 messages

    Daniel Roch - Le 13 novembre 2013, 09:49

    Le code ne le permet pas de base. Il faudra aller modifier le code pour pouvoir faire cela.

  121. Agnès
    3 messages

    Agnès - Le 21 novembre 2013, 12:21

    Merci pour ce script très intéressant. Toutefois, est-il possible de supprimer l’affichage de la catégorie parent d’un article?
    Merci d’avance

  122. Daniel Roch
    713 messages

    Daniel Roch - Le 21 novembre 2013, 15:51

    @Agnès : pas sans modifier le code, mais je le déconseille car c’est utile pour l’internaute comme pour le moteur de recherche.

  123. Agnès
    3 messages

    Agnès - Le 21 novembre 2013, 22:59

    Merci Daniel pour la réponse. En fait, j’ai mis le fil dans un site wordpress et le souci est que si l’on clique sur la catégorie, on arrive sur une page vide si il n’y a pas d’autres articles liés à cette catégorie. Y a t-il alors un moyen de rendre la catégorie non cliquable?

  124. Daniel Roch
    713 messages

    Daniel Roch - Le 25 novembre 2013, 09:05

    Le bug ne vient pas de mon code : théoriquement, la page de catégorie doit systématiquement afficher tous les articles de la catégorie

  125. Agnès
    3 messages

    Agnès - Le 25 novembre 2013, 09:38

    ok. merci. je vais chercher dans ce sens. j’ai en fait intégrer mon propre thème… j’ai donc dû oublier un code quelque part dans le fichier functions.php je suppose.

  126. Gerard
    2 messages

    Gerard - Le 27 mars 2014, 12:17

    Hi Daniel, I’m sorry for comment in English, but I don’t speak French (Catalan and Spanish, yes, heh).

    I would like to know how can I adapt this code with RDF to Microdata. Unfortunately RDF is not HTML5 valid at the moment, that’s the reason I would like to adapt it. Could you say me what I need to change? I’m not sure about the hierarchy and the structure of the RDF adapted to WordPress.

    Thank you in adavance.
    Gerard

  127. Daniel Roch
    713 messages

    Daniel Roch - Le 28 mars 2014, 18:25

    Hi. That’s a good idea but it needs a lot of code changes. Maybe i’ll update it later. For now, I think the WordPress SEO breadcrumbs is using microdata.

  128. Gerard
    2 messages

    Gerard - Le 28 mars 2014, 18:31

    Hi again. I already found a solution to validate the RDFa in HTML5. That’s very good ’cause I don’t need to change it to Microdata format. Apparently the attribute xmlns:v has been deprecated, instead of it I used ‘vocab’ and it worked perfectly; it passed the validation for HTML5 :)

    I asked that on a forum and I got that answer:

    «While xmlns still works, it is deprecated in HTML+RDFa 1.1. You should use the ‘prefix’ attribute instead. If only one vocabulary is used, you could also use the ‘vocab’ attribute instead of ‘prefix’.

    RDFa is much more powerful than Microdata. RDFa Lite (a subset of RDFa), however, is very similar to Microdata.»

    I hope it helps to others.

» Commentez cet article !
(Merci de donner un vrai prénom)
(Ne sera jamais publié)
(Modèration subjective)
Html accepté <a> <i> <b> [codesyntax]CODE[/codesyntax]
» Prévisualisez votre message

© 2010-2012 SeoMix : WordPress & Référencement
Propulsé par WordPress et Daniel Roch. Logo créé par Willy-Bahuaud

Indispensable
WordPress
A propos de SeoMix
Mes servicesWordPress - Référencement
Suivez-nous !
  • 8254 abonnés
  • 195 articles
  • 4531 messages
Vous devriez lire
Seo et emarketing
Les amis
d2faaecb601214be46de80c155107081zzzzzzzzzz