WordPress: Breadcrumb-Navigation ohne Plugin
Eine Breadcrumb-Navigation kann in WordPress auch ohne Plugin leicht eingebaut werden. Die Funktion wird in der functions.php registriert und an gewünschter Stelle im Theme aufgerufen. Hierarchische und netzförmige Seitenstrukturen werden ebenso unterstützt wie Sonderseiten und Custom Post Types.

Breadcrumb-Navigationen sind in komplexen Websites ein wichtiges Navigations- und Orientierungselement. Sobald Ihr WordPress als „echtes“ CMS einsetzt, werdet ihr allerdings merken, dass viele Plugins und Snippets zu sehr auf den Einsatz in Blogs ausgerichtet sind. Sobald diverse statische und hierarchisch verschachtelte Seiten und Custom Post Types im Spiel sind, stößt so manche Breadcrumb an ihre Grenzen.
Code für die functions.php
Den folgenden Code fügt Ihr in die functions.php
eures WordPress-Themes ein.
<?php // breadcrumb
function nav_breadcrumb() {
$delimiter = '»';
$home = 'Home';
$before = '<span class="current-page">';
$after = '</span>';
if ( !is_home() && !is_front_page() || is_paged() ) {
echo '<nav class="breadcrumb">Sie sind hier: ';
global $post;
$homeLink = get_bloginfo('url');
echo '<a href="' . $homeLink . '">' . $home . '</a> ' . $delimiter . ' ';
if ( is_category()) {
global $wp_query;
$cat_obj = $wp_query->get_queried_object();
$thisCat = $cat_obj->term_id;
$thisCat = get_category($thisCat);
$parentCat = get_category($thisCat->parent);
if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
echo $before . single_cat_title('', false) . $after;
} elseif ( is_day() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a> ' . $delimiter . ' ';
echo $before . get_the_time('d') . $after;
} elseif ( is_month() ) {
echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' ';
echo $before . get_the_time('F') . $after;
} elseif ( is_year() ) {
echo $before . get_the_time('Y') . $after;
} elseif ( is_single() && !is_attachment() ) {
if ( get_post_type() != 'post' ) {
$post_type = get_post_type_object(get_post_type());
$slug = $post_type->rewrite;
echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/">' . $post_type->labels->singular_name . '</a> ' . $delimiter . ' ';
echo $before . get_the_title() . $after;
} else {
$cat = get_the_category(); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo $before . get_the_title() . $after;
}
} elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
$post_type = get_post_type_object(get_post_type());
echo $before . $post_type->labels->singular_name . $after;
} elseif ( is_attachment() ) {
$parent = get_post($post->post_parent);
$cat = get_the_category($parent->ID); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a> ' . $delimiter . ' ';
echo $before . get_the_title() . $after;
} elseif ( is_page() && !$post->post_parent ) {
echo $before . get_the_title() . $after;
} elseif ( is_page() && $post->post_parent ) {
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
echo $before . get_the_title() . $after;
} elseif ( is_search() ) {
echo $before . 'Ergebnisse für Ihre Suche nach "' . get_search_query() . '"' . $after;
} elseif ( is_tag() ) {
echo $before . 'Beiträge mit dem Schlagwort "' . single_tag_title('', false) . '"' . $after;
} elseif ( is_404() ) {
echo $before . 'Fehler 404' . $after;
}
if ( get_query_var('paged') ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
echo ': ' . __('Seite') . ' ' . get_query_var('paged');
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
}
echo '</nav>';
}
}
?>
Mit diesem Snippet bindet Ihr die Breadcrumb im Theme ein. Dabei ist es irrelevant ob sich die Navi innerhalb oder außerhalb des WordPress-Loops befindet.
<?php if (function_exists('nav_breadcrumb')) nav_breadcrumb(); ?>
Je nachdem, auf welcher Unterseite des Projektes Ihr euch befindet, wird nun die Breadcrumb dargestellt. Im Gegensatz zu vielen anderen Lösungen die ich kenne, arbeitet diese Breadcrumb einwandfrei mit Archiven, Seiten und Kategorien. Auch Custom Post Types werden berücksichtigt.

Hallo Jonas,
vielen Dank für diesen Code, auch viele Jahre später ist er noch Gold wert. :)
Ich habe eine Frage, und zwar gehts um Costum Post Types mit Taxonomien. Hier habe ich leider das Problem, dass ich auf dem entsprechenden Post nicht mehr über die Breadcrump zurück komme, da ich die URL „manipuliert“ habe. Also die URL lautet bspw. „../news/kategorie/beitrag“ – und leider führt mich die Breadcrump zu „…news/%news_category%“ und nicht zu „..news/kategorie“ :(
Hast du eine Idee, wie ich das ändern kann?
1000 Dank im Voraus! :)
Beste Grüße, Angelina
Hi zusammen und Dank an Jonas,
ich habe den Code hier mal verallgemeinert und als kleines composer PHP-Paket veröffentlicht: https://github.com/bjoluc/wordcrumbs
Damit sind Anpassungen an Formatierung und Funktion leichter. Ich hoffe das hilft dem ein oder anderen!
@Jonas Ich würde mich riesig über einen Verweis im Artikel freuen!
Hi Jonas,
danke für den Code. Hat alles wunderbar geklappt!
Weiter so!
Viele Grüße
Super genial!
Danke dir, habe das Snippet bereits auf mehreren Seiten eingesetzt.
Hallo Jonas,
danke vielmals für diese Geniale Breadcrumb, die auch problemlos in meiner neuen Testumgebung funktioniert (auch im Child-Theme).
Parallel läuft bei mir auch Woocommerce und die entsprechende WC Breadcrumb.
Wenn ich nun von einem Artikel in eine Single-Page (einfache Seite – Bsp.: Tips zum Produkt) verlinke weiß diese Seite natürlich nicht mehr, von welchem Produkt man kam.
Gibt es hier eine Möglichkeit dieses Skript zu erweitern?
Oder wäre es vielleicht besser nur diese Breadcrumb zu nehmen, in WC zu integrieren und die BC von Woocommerce zu deaktivieren?
Für jeden Tip und Lösungsvorschalg wäre ich sehr dankbar.
Viele Dank
Also, ich habe mir mal eine „Notlösung“ zusammengefrickelt, ich habe leider keine Zeit mir das ganze geniale Skript ausführlichst anzusehen und bin auf folgende Zwischenlösung gekommen.
Erstmal hole ich mir die zuvor besuchte Seite mit HTTP_Referer
($referer = getenv(„HTTP_REFERER“);) und schreibe das in meine Variable z.B. in $pback. Dann füge ich in dem Skript, nach der Zeile „$page = get_page($parent_id);“ also in der while-Schleife, für die Ausgabe hinzu:
if ( is_page_template( ‚template-tips.php‘ ) ) {
$breadcrumbs[] = sprintf($link, get_permalink($page->ID), get_the_title($page->ID).$pback);
}
Also wenn jemand zuvor auf meinem template war, kriegt er die Breadcrumb mit dem vorigen HTTP_Referer. Das ganze kann man noch fortführen, wenn man in den HTTP_Referer überprüft, ob dieser z.B. den gleichen Domainnamen beinhaltet oder von localhost ist, bzw. von extern kommt und die Ausgabe entsprechend anpassen. Ich leite hier einfach zur Startseite, wenn jemand von externen Quellen kommt – dann gab es ja vorher auch kein Besuch auf einer Produktseite. Eine bessere Idee habe ich hier gerade nicht, aber für meine Zwecke dürfte es reichen.
So 100%ig weiß ich aber noch nicht wie das mit $parent_id und $frontpage_id ist…
Sicherlich nicht gerade die elegante Lösung, aber es scheint zu funktionieren und wenn jemand eine schönere Lösung hat… -:)
Grüße Jörg
Hallo Jonas,
danke für den tollen und flexiblen Breadcrumb Code.
Gibt es auch die Möglichkeit für die Seiten (is_page) an stelle des Titels (get_the_title($page->ID)) den Menünamen auszugeben, den ich im Menü manuell angelegt habe. Optimal wäre vielleicht eine IF-Lösung.
Vielen Dank
Hey Jonas,
danke für das Snippet. Ich wundere mich nur, dass anscheinend noch niemandem aufgefallen ist, dass der Part am Ende mit der Abfrage elseif(is_tag()) doppelt drin steht. Macht so keinen Sinn und sollte entfernt werden.
Beste Grüße
Pascal
Hallo Pascal, vielen Dank. In der Tat überraschend, dass es bisher niemand bemerkt hat. Jetzt ist die Dopplung entfernt.
Hallo Jonas,
erst einmal vielen Dank für das Snippet. Ich versuche derzeit die einzelnen Brotkrumen mit Listen-Elementen zu umschließen. Ich bekomme es leider nicht hin, hast du eine Idee, wie es bei allen Punkten funktioniert? Bei jenen die ein Element im Code haben bekomme ich es hin, aber z.B. bei den Kategorien nicht.
Vielen Dank im Voraus!
Hallo Nils,
die Frage ist zwar jetzt schon gut zwei Jahre alt, aber wenn du das Problem nochmal haben solltest: Du kannst WordCrumbs (https://github.com/bjoluc/wordcrumbs) mit dem HtmlListFormatter verwenden :)
LG bjoluc
Ich möchte die Hirachie meine Hauptmenüs durch dein Breadcrumb Snippet darstellen. Leider funktioniert das nicht. Kennst du die Lösung für dieses Problems?
Menü Hirachie
A
B
B1
B2
C
Breadcrumb sollte sein:
Home > B > B1 sein.
Angezeigt bekomme ich:
Home > B1
Hallo Juergen,
Du mußt im Backend die Seiten mit den jeweiligen Elternseiten zuordnen. Wenn Du es richtig gemacht hast, siehst Du im Backend die Unterpunkte mit einem vorangestelltem Bindestrich.
Gehe im Backend auf die Seiten, dann auf die Seite „B1“ / „B2“ ins Quickedit und wähle B als Elternelement aus.
Dann müßte es funktionieren.
Danke, darüber war ich auch gestolpert.
Hallo Jonas,
ich bin in den Theme Einstellungen auf das Wort Breadcrumbs aufmerksam geworden. Da ich in WordPress noch nicht so riesen Erfahrung haben, wollte ich gern mal wissen was das genau ist und was ich damit machen kann. Vielleicht ist das für meinen Seitenaufbau eine Option die ich auch nutzen könnte.
Würde mich sehr über eine Antwort freuen.
Vielen Dank und einen schönen Sonntag :-)
Hallo Sven, schau mal hier. Hilft dir das weiter?
Dankeschön. Wenn ich das also richtig sehe ist das so eine Art Menüstruktur die eine bessere Navigation unterstützen soll. Na gut muss ich jetzt nicht wirklich nutzen. So viele Unterseiten hab ich in den meisten Fällen nicht.
Hey,
super Script aber ich habe bei mir ein Fehler entdeckt. Wenn ich eine Suche starte was kein Ergebniss hat, wird mir da ein Fehler ausgegeben (Debug on true).
Sonst funktioniert alles problemlos.
Cool, gesucht und gefunden! Der Code erspart mir ein zusätzliches und offensichtlich sinnloses Plugin!
Merci! :-)
Super Arbeit, funktioniert problemlos.
Danke fürs teilen!
Grüße
David
Vielen Dank für den Code. Er funktioniert wunderbar und ist mit kleinen Anpassungen auch für Bootstrap wunderbar adaptierbar.
Hi, genau das habe ich gesucht. Ich hoffe, die Modifikation funktioniert auch noch in dieser WP Version.
Vielen Dank – funktioniert top und lässt sich easy erweitern!
Ich danke dir für den Code… hat mir einiges an eigener Arbeit erspart :-)
Top!
[…] Über den Code: Hierfür müssen Sie die bestehende functions.php Ihres Themes bearbeiten und den entsprechenden Code der Breadcrumbs an die gewünschte Stelle einfügen. Da wir uns nicht mit fremden Federn schmücken wollen und auch nicht wirklich etwas Neues diesbezüglich zu vermelden ist, verweisen wir an dieser Stelle an den Blog des Kulturbanausen Jonas Hellwig. Dort ist alles dokumentiert und aufgeführt. Zum Artikel von Jonas Hellwig. […]
Ein Super Code. Genau das habe ich gesucht.
Vielen vielen Dank.
Ich würde ihn gerne noch erweitern, kann aber selber so etwas nicht realisieren … vielleicht hast Du ja eine Idee.
Schön wäre es, wenn in der Navigation folgende Vorschau der Unterseiten angezeigt wird (Beispiel anhand meiner Offline Seite):
Home > PKW | LKW | Bike …
Auswahl „PKW“:
Home > PKW > Audi | Daimler | Porsche | VW | …
und bei der Auswahl von „Daimler“:
Home > PKW > Daimler > GLK | SLK | MLK | Sprinter | …
usw.
Ich würde mich freuen, wenn ich hier einen Lösungsvorschlag bekommen könnte.
Danke
Kai
Hallo an Alle! Ist es möglich mit WordPress Breadcrumbs in der URL (in den SERPS) anzeigen zu lassen? Ich bin mir gar nicht sicher ob man die so überhaupt nennt. Hab diese bei größeren Seiten wie gelbeseiten gesehen.. Vielen Dank schon mal im Voraus für die Antwort!
Hi,
Gibt es einen Weg bestimmte Seiten nicht als Link anzeigen zu lasen , quasi nur als übergeordnete Kategorien.
Hi,
ich arbeite mit FlatUI Kit Pro und möchte gern mit deinem Snippet arbeiten, leider funktioniert es nicht, die Cat in eine Seperate zu bringen.
Irgendwelche Ideen? Über Ratschläge freue ich mich sehr. DANKE!
Hallo. Sehr schöner Code, ich bin verzweifelt auf der Suche nach einer geeigneten Lösung für die Breadcrumbs – und es wundert mich, dass es da so gut wie keine brauchbaren Lösungen gibt.
Die Lösung hier ist jetzt die erste, die mich weiterbringt.
Ich hätte zwei etwas spezielle Fragen:
Ich möchte das letzte Element des Trails in eine neue Zeile umbrechen und anders stylen, allerdings sind meine PHP-Kenntnisse etwas beschränkt und ich komme nicht drauf, wie ich das anstellen könnte.
Außerdem wäre es klasse, wenn Seiten/Custom Post Types mit einer Klasse „class=ID“ ausgegeben würden, damit vor diesen per CSS Icons ausgegeben werden können….
Zu Speziell, oder könntest du mir weiter helfen?
Vielen Dank schon im Voraus!
Vielen Dank dir! Ich werde es dann bei Gelegenheit ausprobieren. Tolles Tutorial, welches sehr hilfreich ist.
Gruß Robert
Hallo,
steinigt mich für die Frage, aber in welche Datei gehört jetzt das 2. (kurze) Snippet?
Gruß Robert
Das zweite Snippet gehört in die Datei in der die Navigation erscheinen soll. Also beispielsweise in die header.php oder die single.php – je nach Aufbau des Themes.
vom feinsten ;)
Super Beispiel, funktioniert 1A. Danke dafür. Gruß.
Danke für den Code, hab ihn heute eingebaut.
Schicke Anleitung, bin zufällig drüber gestolpert und habe das gleich mal ausprobiert. Funktioniert prima … ausser einer Sache. (Weil ich jetzt leider auch nicht die Leuchte in PHP bin) wie bekomme ich es denn hin, dass mir zusätzlich zum Untermeüpunkt auch der dazugehörige übergeordnete Menüpunkt angezeigt wird (habe ein Menü mit Ober- und Unterpunkten).
Danke schonmal :)
Coole Anleitung!!!
Bin nicht der Hirsch in PHP. Habe WooCommerce. Möchte nun in WooCommerce die WooCommerce Breadcrumb angezeigt haben und nicht die nav_breadcrumb. Auf allen anderen Seiten jedoch die nav_breadcrumb.
Dies funktioniert in der header.php tadellos, aber eben auf der WooCommerce Shopseite werden beide angezeigt. Danke für die Hilfe! Kniefall! Hier mein Ansatz – wenn ich bloss PHP könnte.
—
if (keine ahnung wie, shopseite – lass es)
if (function_exists(’nav_breadcrumb‘)) nav_breadcrumb(); {
// neu
$breadcrumb = nav_breadcrumb;
}
—
Dankschön für das Snippet, funktioniert super ;o)
[…] https://blog.kulturbanause.de/wordpress-breadcrumb-navigation-ohne-plugin/ […]
Danke, dass du den Code zur Verfügung stellst! Hab deinen Artikel jetzt erst gefunden, aber lieber spät als nie.
@Sebastian: Das mit den Div-Containern ist ein guter Hinweis. Werde ich direkt mal ausprobieren, danke.
Hallo,
@David: Die Breadcrumb-Navigation wird umschlossen von den Div-Container id=“breadcrumb“ und somit kannst du das Ganze via CSS stylen z.B. #breadcrumb a { color: #FFF; etc. }. Die Anzeige der aktuellen Unterseite bekommt span class=“current“ zugewiesen und kann somit über #breadcrumb span.current { … } formatiert werden.
Wie genau kann ich das mit den CSS Klassen machen?
Ich bekomme es einfach nicht hin.
Danke und Gruss
So wollte nur mal sagen das ich es dann auch schon lange hinbekommen habe ….
Keine Idee? :-(
Sorry, dass ich frage, aber wie kann man das Breadcrumb denn elegant CSS-stylen?
Hi Jonas,
vielen Dank für das Snippet, genau das habe ich gesucht!
Bei der Suchergebnisliste funktioniert es bei mir aber nur, wenn ich in der Zeile
} elseif ( !is_single() && !is_page() && get_post_type() != ‚post‘ && !is_404()) { (…)
&& !is_search() hinzufüge.
Viele Grüße!
Vielen Dank für die Ergänzung.
Danke für die wirklich sehr gute Breadcrumb-Funktion. Anbei noch die Funktion mit der man die Breadcrumb als Shortcode integrieren kann.
function breadcrumb ( $atts) {
ob_start();
?>
<?php
$breadcrumb = ob_get_contents();
ob_end_clean();
return $breadcrumb;
}
add_shortcode( 'breadcrumb', 'breadcrumb' );
Nice one!
Danke und keep updating.
Hallo Jonas,
erstmal vielen Dank für diese Funktion, war im groben genau das, was ich gesucht habe. Mir ist nur folgendes aufgefallen: Wenn ich auf der Seite mit den Suchergebnissen bin, wird als letzte Stufe der Breadcrumb ja „Ergebnisse für Ihre Suche nach..“ angezeigt. Allerdings nur, wenn die Suche auch Ergebnisse liefert. Wird der Suchstring nicht gefunden, bleibt die letzte Stufe der BC leer. Ich habe das jetzt erstmal so gelöst, daß ich per Debugstrings gesucht habe, „wo“ in der langen elseif-kette ich dann lande. Das ist das elseif in Zeile 50, dort hab ich dann einfach folgendes eingefügt:
if ( get_search_query() != “ ) {
echo $before . ‚“‚ . get_search_query() . ‚“ nicht gefunden‘ . $after;
} else { ….
Aber ich habe das Gefühl, das ist nicht der eleganteste Weg. Hast Du eine bessere Idee?
Danke und VG,
Jan
VIelen Dank für den Code Snippet, funktioniert wunderbar :)
Deine Breadcrumb ist wirklich mal eine sehr gute Sache! Ich habe schon einige Codes von verschiedenen Leuten ausprobiert und bisher hat keiner so einwandfrei funktioniert. Ich musste hier nur einige kleine Sachen anpassen, damit es für mein Theme optimal ist. Vielen Dank für den Code!
Vielen Dank für das Code-Snippet.
Können wir gut gebrauchen!
Viele Grüße
ToM
[…] but not least meiner Blog-Verbesserungen ist nun die weitere Navigations-Funktion per Breadcrumb. Dank Jonas Code wurde dieser wunderbar hier im Blog umgesetzt. Ich musste nur den Abstand per CSS ein wenig […]
Hallo Jonas,
das nenne ich mal eine super beschriebene Erklärung. Ich wollte kein Plugin für diese Funktion installieren und bin daher bei meiner Google-Suche auf Deinen Beitrag gestoßen.
Das ging ruckzuck und sieht klasse aus! Ein herzliches Dankeschön.
Gruß Sylvi
Hallo,
vielen Dank für den Link zu den Conditional Tags!
Hast du vielleicht noch einen Link wo ich nachlesen kann wie ich den entsprechenden Menütitel und nicht den Beitragstitel auslesen kann? Also sowas wie „get_the_title()“ nur fürs Menü.
Viele Grüße
Hallo Jonas,
ich habe ein Seitentemplate welches anders aufgebaut ist als der Rest der Seite, dieses Template hat keine Sidebar auf der linken Seite.
Nun habe ich das problem das die Breadcrumbs falsch sitzen. Nun war meine Intention einfach den Braedcrumbs beim Aufruf () in den jeweiligen Templates eine Klasse mitzugeben um die Position anzupassen.
Viele Grüße,
Jan
@Jan: Die Breadcrumb bekommt ja eine ID mitgegeben. Die kannst du natürlich um eine Klasse ergänzen. Auf welcher Seite im WordPress-Theme sich der User befindet, kannst du mit Conditional Tags herausfinden: http://codex.wordpress.org/Conditional_Tags
Hallo,
meine PHP-Kenntnisse sind jetzt nicht die besten deshalb frag ich mal grad mal nach :).
Ich möchte den breadcrumbs auf bestimmten Templateseiten (template-full-width.php) eine eigene Klasse mitgeben. Wie bekomme ich das hin?
Viele Grüße
@Jan: Wo möchtest du denn eine Klasse hinzufügen? Außen herum ist ja bereits ein Container.
Super, vielen Dank für das schnelle Feedback. Man lernt jeden Tag dazu! ;-)
Hallo Jonas,
wärst Du so nett hier kurz zu posten, wie ich die Breadcrumb auch auf die Startseite bekomme (siehe vorheriger Post)? Da mein Blog in einem Unterverzeichnis liegt, ist die Blogstartseite bei mir nicht die eigentliche Startseite. Deswegen macht es hier schon durchaus Sinn auch eine Breadcrumb zu haben. ;)
Ich wäre Dir sehr dankbar. Dein Blog ist eine wahre Schatzkammer an Tipps!
Liebe Grüße
Canji
@Canji: Es gibt zwei Möglichkeiten die ich hier verwenden würde. Entweder du passt den oben abgebildeten Code an. In Zeile 9
if ( !is_home() && !is_front_page() || is_paged() ) {
wird ja festgelegt auf welchen Seiten dieBreadcrumb NICHT angezeigt wird. Hier kannst du
!is_home() && !is_front_page() ||
entfernen und die Breadcrumb so auch auf der Startseite anzeigen. Diese Lösung ist aber Abhängig von deiner Theme-Struktur.
Alternativ kannst du manuell auf der Startseite einen Link einbinden. Dafür gibt es ja den Template-Tag
bloginfo
. http://codex.wordpress.org/Function_Reference/bloginfoHallo,
ist es beabsichtigt das die breadcrumb Navigation nur dann zu sehen ist, wenn eine Unterseite angewählt wurde?
Ich habe den gesammten Code in die functions.php kopiert (ganz unten), und dann den Code schnipsel so eingefügt das die brotkrümmelnavi unter meinen Links ist.
Wie oben schon beschrieben ist diese nur zu sehen wenn ich auf eine Unterseite bin zB Leistungen > Käfer zertrampeln.
Gruß
@Björn: Ja das ist Absicht. Die Startseite hat ja für gewöhnlich keine Breadcrumb. Und wenn du sie doch brauchen solltest kannst du sie ja noch ins Template einfügen.
Hi Jonas, danke für den guten Artikel! Ich habe mir damals die Breadcrumbs in der functions.php auch selbst zusammengebaut, bis ich irgendwann merkte, dass ich mit dem PlugIn Breadcrumb-NavX das selbe erreiche, allerdings mit dem wesentlich einfacheren Einstellmöglichkeiten über das Backend. Siehst Du einen Vorteil in der gecodeten Version gegenüber einem PlugIn, vielleicht in Ladezeit?
@Mathias: Hi Mathi, also für mich ist eine Breadcrumb ganz einfach kein Plugin. Das hatte ich oben ja schon einmal erwähnt ;) Aus folgendem Grund: Ein Plugin erweitert in meinen Augen WordPress um bestimmte Funktionen. Zum Beispiel um ein Datenbank-Backup, eine automatische XML-Sitemap etc.
Die Breadcrumb bietet allerdings keine neuen Funktionen sondern stellt nur vorhandene Infos im Theme dar. Es gehört also ganz eindeutig ins Theme – also in die functions.php – und nicht in ein Plugin. Aus diesem Grund suche ich bei einer solchen Funktion dann auch gar nicht nach einem Plugin sondern nach einer eigenen Lösung.
Ob der oben gezeigte Code im Vergleich zu deinem Plugin jetzt besser oder schneller oder nichts von allem ist, kann ich nicht sagen.
Mir gefällt´s! Danke!
Toller und informativer Artikel. Aber was ist nun direkt der Vorteil dieser Variante? Entweder ich schleife ein Plugin mit oder ich „mülle“ meine functions.php zu.
@Rollstuhlbasketballer: Für mich gehört die Breadcrumb eindeutig zum Theme und somit in die functions.php – aber darüber kann man ausführlich diskutieren :) Außerdem mag ich es lieber den Code direkt in meinem Theme einzusetzen und auch zu verstehen bzw. verändern zu können. Bei Plugins habe ich häufig das Gefühl nicht alle Bereiche der Seite voll im Blick zu haben. Dafür muss man natürlich dann auch Updates selbst vornehmen…