
In vielen Blogs sieht man sie, die kleine und unauffällige “Brotkrumen”-Spur, welche einem den Weg durch die Navigation der Website zur aktuellen Seite anzeigt. Die Rede ist von der Breadcrumbnavigation. Also die typische “Du bist hier: Start > Kategorie > Artikel”- Navigation. Plugins gibt es dafür wie Sand am Meer aber nicht immer ist ein solches notwendig, denn es geht auch mit einem kleinen und kurzen Eingriff in die functions.php des verwendeten Themes.
Die Änderungen
Also mach ich es kurz und schmerzlos, das muss da rein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | /** * Adding breadcrumbnavigation to wordpress. */ if(!function_exists('my_breadcrumb')) { function my_breadcrumb() { global $post; $var_sHtmlBreadcrumbStart = __('You are here: ', MY_TEXTDOMAIN); $var_sHomeUrl = (get_option('page_for_posts')) ? get_permalink(get_option('page_for_posts')) : home_url(); $var_sHomeTitle = (get_option('page_for_posts')) ? get_the_title(get_option('page_for_posts')) : get_the_title(home_url()); if(is_front_page()) { return; } // END if(is_front_page()) if(!is_home()) { $var_sHtmlBreadcrumb = '<a href="' . $var_sHomeUrl . '">' . $var_sHomeTitle . '</a> » '; if(is_category() || is_single()) { if(is_single()) { $var_sHtmlBreadcrumb .= get_the_title(); } // END if(is_single()) } elseif(is_page()) { $var_sParentID = $post->post_parent; $array_Breadcrumbs = array(); while($var_sParentID) { $page = get_page($var_sParentID); $array_Breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '" title="' . get_the_title($page->ID) . '">' . get_the_title($page->ID) . '</a>'; $var_sParentID = $page->post_parent; } // END while($var_sParentID) $array_Breadcrumbs = array_reverse($array_Breadcrumbs); foreach ((array) $array_Breadcrumbs as $var_sCrumb) { $var_sParentPage .= $var_sCrumb . ' » '; } $var_sHtmlBreadcrumb = $var_sParentPage . get_the_title(); } elseif(is_tag()) { single_tag_title(); } elseif(is_day()) { $var_sHtmlBreadcrumb .= __('Archive for ', MY_TEXTDOMAIN) . get_the_time('F jS, Y'); } elseif(is_month()) { $var_sHtmlBreadcrumb .= __('Archive for ', MY_TEXTDOMAIN) . get_the_time('F, Y'); } elseif(is_year()) { $var_sHtmlBreadcrumb .= __('Archive for ', MY_TEXTDOMAIN) . get_the_time('Y'); } elseif(is_author()) { $var_sHtmlBreadcrumb .= __('Authors Archive', MY_TEXTDOMAIN); } elseif(isset($_REQUEST['paged']) && !empty($_REQUEST['paged'])) { $var_sHtmlBreadcrumb .= __('Blog Archive', MY_TEXTDOMAIN); } elseif(is_search()) { $var_sHtmlBreadcrumb .= __('Search', MY_TEXTDOMAIN); } elseif(is_404()) { $var_sHtmlBreadcrumb .= __('404 Error » Not found', MY_TEXTDOMAIN); } // END if (is_category() || is_single()) } else { $var_sHtmlBreadcrumb = '<a href="' . $var_sHomeUrl . '">' . $var_sHomeTitle . '</a>'; } // END if (!is_home()) return '<div class="my-breadcrumb">' . $var_sHtmlBreadcrumbStart . $var_sHtmlBreadcrumb . '</div>'; } // END function my_breadcrumb() } // END if(!function_exists('my_breadcrumb')) |
Der Aufruf
Damit ist die Navigation natürlich noch nicht angezeigt, denn das muss erst noch. Dazu wird an jeder Stelle wo diese Navigation angezeigt werden soll im Template folgender Aufruf hinterlegt:
1 |
Viel Spaß 




Ist das wirklich von Nöten? Ich meine der Besucher ist ja nicht doof, der sieht ja wo er ist. Und so schwierig ist die Navigation durch einen Blog ja nun wirklich nicht, zumal oben das Menü angezeigt wird!?
Ich halte die Brotkrumen für absolutwichtig, da der User sicher nicht dumm ist aber die Navigation durch gerade sehr tiefe Strukturen stark vereinfacht wird. Ich selbst nutze dieses Navigationselement immer wenn ich es finde bzw. ich benutze es auch. Es halt aus meiner Sicht einen festen Platz eingenommen.
Bleibt das erhalten wenn man das theme updated?
Wenn Du für Anpassungen am Theme ein Child-Theme erstellst, dann ja. Ansonsten wird natürlich bei einem Update des Themes auch diese Datei mit der neuen Version ersetzt.