Jak zrobić własny breadcrumb – okruszki chleba do WordPress

Breadcrumb zwany również okruszkami chleba stanowi ścieżkę dzięki, której możemy ustalić swoje położenie na stronie. Może on wyglądać np:

Jesteś tutaj | Strona domowa -> Strona sekcji ->Strona sekcji podrzędnej

Każdy z powyższych elementów może być klikalny lub też nie w zależności o struktury kodu, który go generuje. Do WordPress breadcrumb  można dodać na kilka sposobów takich jak plugin lub modyfikacja pliku header.php w szablonie.

Na początek warto dowiedzieć się jak wypisać nazwę strony na której obecnie przebywamy

<?php echo get_the_title(); ?>

W codex WordPress znaleźć można przykładowy Breadcrumb:

<div class="breadcrumb">
<?php 
// if there is a parent, display the link
$parent_title = get_the_title( $post->post_parent );
if ( $parent_title != the_title( ' ', ' ', false ) ) {
	echo '<a href="' . get_permalink( $post->post_parent ) . '" title="' . $parent_title . '">' . $parent_title . '</a> » ';
} 
// then go on to the current page link
?>
<a href="<?php the_permalink(); ?>" rel="bookmark" title="<?php the_title_attribute(); ?>">
<?php the_title(); ?></a> »
</div>

nie do końca sprawdza się on jednak jeżeli wpisy nie znajdują się na stronie głównej a nasze menu jest zmodyfikowane i składa się ze stron i wpisów.

W tym przykładzie wszystkie elementy są klikalne.

Na podstawie tego przygotowałam kod:

<div class="breadcrumb">
<?php
if (is_category( $category )){
$categories = get_the_category();
echo $categories[0]->cat_name . ' » ';
}
if (is_single()){
$categories = get_the_category();
$separator = ' ';
$output = '';
if($categories){
foreach($categories as $category) {
$output .= '<a href="'.get_category_link( $category->term_id ).'" title="' . esc_attr( sprintf( __( "View all posts in %s" ), $category->name ) ) . '">'.$category->cat_name.'</a>'.$separator;
}
echo trim($output, $separator) .' » ';
}}
if ($post->post_parent > 0){// if there is a parent, display the link
$parent_title = get_the_title( $post->post_parent );
if ( $parent_title != the_title( ' ', ' ', false ) ) {
echo '<a href="' . get_permalink( $post->post_parent ) . '" title="' . $parent_title . '">' . $parent_title . '</a> » ';
} }
if (!is_category( $category ) ){
the_title();
echo " » ";
}
?>

</div>

Kod ten nie jest optymalny, ale umożliwia stworzenie Breadcrumb z ostatnim elementem nieklikalnym oraz pokazuje pełną ścieżkę do wpisu czy strony.

Kod pozwala jedynie cofnąć się o jeden poziom do góry, czyli pozyskać rodzica ale nie dziadka.

Jak zrobić własny breadcrumb – okruszki chleba do WordPress
Przewiń na górę
%d bloggers like this: