[AUTOMATIQUE] Cet article a plus de 5 ans.
Il se peut donc que les informations qu'il fournit ne soient plus totalement exactes.
Il se peut donc que les informations qu'il fournit ne soient plus totalement exactes.
J’ai cherché il y a quelques temps comment faire un fil d’Ariane (Breadcrumb) simple et surtout personnalisable selon mes Custom Post Types, taxonomies, etc.
Je voulais une solution sans plugin pour bien la mettre « à ma sauce ». J’ai fini par trouver quelque chose qui me plaisait, mais qui avait quelques incohérences…
Voici ce que ça donne après modifications.
function bweb_breadcrumb(){
wp_reset_query();
echo '<ul class="breadcrumbs">';
if (is_tag()) {echo"<li>Tag : ";single_tag_title();}
elseif (is_day()) {echo"<li>Archive de "; the_time('F jS, Y'); echo'</li>';}
elseif (is_month()) {echo"<li>Archive de "; the_time('F, Y'); echo'</li>';}
elseif (is_year()) {echo"<li>Archive de "; the_time('Y'); echo'</li>';}
elseif (is_author()) {echo"<li>Archive"; echo'</li>';}
elseif (isset($_GET['paged']) && !empty($_GET['paged'])) {echo "<li>Archives du Blog "; echo'</li>';}
elseif (is_search()) {echo"<li>Résultat de recherche"; echo'</li>';}
elseif (!is_home() && !is_front_page() ) {
echo '<li><a href="';
echo get_option('home');
echo '">';
echo 'Accueil';
echo '</a></li><li class="separator"> / </li>';
if (is_category() || is_single()) {
echo '<li>';
the_category(' </li><li class="separator"> / </li><li> ');
if (is_single()) {
echo '</li><li class="separator"> / </li><li>';
the_title();
echo '</li>';
}
} elseif (is_page()) {
if($post->post_parent){
$anc = get_post_ancestors( $post->ID );
foreach ( $anc as $ancestor ) {
$output = '<li><a href="'.get_permalink($ancestor).'" title="'.get_the_title($ancestor).'">'.get_the_title($ancestor).'</a></li> <li class="separator">/</li>';
}
echo $output;
echo $title;
} else {
echo the_title();
}
}
}
echo '</ul>';
}L’utilisation est super simple, il suffit de coller la fonction ci-dessus dans votre fichier functions.php ainsi que d’appeler cette fonction en collant bweb_breadcrumb() dans votre thème. Selon la structure de votre thème, et pour éviter d’éditer 50 fichiers, je vous conseilles d’appeler ce snippet dans header.php sous votre barre de navigation.
