[AUTOMATIQUE] Cet article a plus de 5 ans.
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.

Article rédigé parBrice CAPOBIANCO

Autodidacte passionné par WordPress. J'aime apprendre et créer pour ensuite partager !

Coorganisateur des Meetups WordPress Rennes et fondateur de bweb.
Partager cet article

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