WordPress Breadcrumb Navigation ohne Plugins
Da ich mittlerweile mehr WordPress Plugins installiert habe als für das Blog gut ist und ich die volle Kontrolle über meine Breadcrumbs in WordPress haben möchte, war ich auf der Suche nach einer geeigneten Möglichkeit die Breadcrumb Navigation ohne ein Plugin in WordPress einzubauen.
WordPress Breadcrumb Grundlösung
Bei wpti.ps habe ich dann letztendlich die perfekte Grundlage für die Plugin-lose Implementierung der WordPress Breadcrumb Navigation gefunden.
Was mir hier gefehlt hat ist, dass die WordPress Breadcrumb nicht in den Kategorien-Seiten erschien und der eigentliche Post selbst nicht in der WordPress Breadcrumb enthalten war. Also habe ich kurzerhand das Skript angepasst und mir die fehlenden Attribute dazugebaut
WordPress Breadcrumb Navigation ohne Rich-Snippets
Das Ergebnis schaut letztendlich später so aus:
Dazu muss der folgende Sourcecode am Ende der functions.php im jeweiligen WordPress Theme Verzeichnis hinzugefügt werden und im Template an passender Stelle mit <?php echo write_breadcrumb(); ?> aufgerufen werden
/**
* Retrieve List of Breadcrubms without Rich-Snippets Option
*/
function write_breadcrumb() {
$pid = $post->ID;
$trail = '<a href="/">Home</a>';
if (is_front_page()) {
// do nothing
}
elseif (is_page()) {
$bcarray = array();
$pdata = get_post($pid);
$bcarray[] = ' » '.$pdata->post_title."\n";
while ($pdata->post_parent) {
$pdata = get_post($pdata->post_parent);
$bcarray[] = ' » <a href="'.get_permalink($pdata->ID).'">'.$pdata->post_title.'</a>';
}
$bcarray = array_reverse($bcarray);
foreach ($bcarray AS $listitem) {
$trail .= $listitem;
}
}
elseif (is_single()) {
$pdata = get_the_category($pid);
$adata = get_post($pid);
if(!empty($pdata)){
$data = get_category_parents($pdata[0]->cat_ID, TRUE, ' » ');
$trail .= " » ".substr($data,0,-8);
}
$trail.= ' » '.$adata->post_title."\n";
}
elseif (is_category()) {
$pdata = get_the_category($pid);
$data = get_category_parents($pdata[0]->cat_ID, TRUE, ' » ');
if(!empty($pdata)){
$trail .= " » ".substr($data,0,-8);
}
}
return $trail;
}
WordPress Breadcrumb Navigation mit Rich-Snippets
Damit nicht nur eure Besucher der Seite etwas von der Breadcrumb Navigation haben, sondern auch der Google Bot diese Navi in die Suchergebnisse einbauen kann gibt es die Möglichkeit die Breadcrumb Leiste mit Rich Snippets auszuzeichnen. Das schaut im Ergebnis dann in der Google Suche so aus:
Quellcode
Der besseren Lesbarkeit halber habe ich den Code für die Rich-Snippets Integration der Breadcrumbs in einer externen Datei hinzugefügt. Hier könnt ihr den Code downloaden.
CSS aktualisieren
Folgende CSS Styles müsst ihr nur noch eurem Stylesheet hinzufügen, fertig!
#breadcrumb .item{
display: inline;
}
Wenn Dir der Beitrag gefällt, freue ich mich über jedes Share oder ein Kommentar!




Kommentar geschrieben am 10.05.2012
Hi Viktor,
super Beitrag, vielen Dank dafür.
Ich habe den Code gerade voller Vorfreude eingebaut, allerdings funzt es noch nicht so, wie ich mir das vorstelle. Das Problem ist, dass der Breadcrumb immer nur bis “Home” aufgeführt wird. Der Rest (also die Kategorie und der jeweilige Post) werden nicht angezeigt.
Hast Du eine Idee, woran das liegen könnte?
Vielen lieben Dank! :-)
Kommentar geschrieben am 10.05.2012
dann funktioniert der gesamte dynamische Teil bei Dir nicht….
Zeigt er denn die » » oder auch nicht?
Welche WordPress Version nutzt Du?
Wie hast Du den Quellcode kopiert?
Kommentar geschrieben am 14.05.2012
Hi Viktor,
danke für Deine Mühe! :-)
Ich habe jetzt einen anderen Weg gefunden mittels eines Plugins.
Trotzdem tausend Dank!
Kommentar geschrieben am 03.06.2012
Super, vielen Dank dafür!
Hat mir viele Umstände erspart, zumal ich ohnehin kein Fan von Plugins bin. Läuft bereits auf meinem Blog :)
Kommentar geschrieben am 03.06.2012
schön, freut mich, dass ich helfen konnte
Kommentar geschrieben am 26.08.2012
Hallo,
hat alles bestens bei einem Blog, den ich betreue, funktioniert. Danke für die saubere Auflistung.
Ralf,
kein Plugin-Freund ;)
Kommentar geschrieben am 14.11.2012
Hallo und vielen Dank für Deine Anleitung, aber muss bei den Rich-Snippets nicht der letzte Punkt (aktive) auch mit einen Link versehen werden? Erst dann bringt doch das “Rich-Snippets” erst etwas!
Kommentar geschrieben am 14.11.2012
Das ist eine sehr gute Frage! Ich bin der Meinung, dass das letzte Element nicht verlinkt werden muss, da der Besucher sich ja auf der Seite bereits befindet. Die Breadcrumb ist ja an sich eine Navigationshilfe. Ein Link auf sich selbst verwirrte den Besucher ja nur.
Ich nutze beide Varianten. Sowohl in der einen als auch der anderen Variante werden nur die übergeordneten Hierarchien in den SERP dargestellt:
letztes Breadcrumb Element verlinkt
letztes Breadcrumb Element nicht verlinkt
Kommentar geschrieben am 04.01.2013
Eine interessante Anleitung, die bei anderen auch zu funktionieren scheint. =)
Ich habe in meinem Skript, das ich fremderworben habe, bereits eine Breadcrumbstruktur, wie es schein. Besteht da eine Möglichkeit, die vorhandene in diese Vorgehensweise zu integrieren – denn im snippet-Tool werden keine Krümel angzeigt.
Vielen Dank.
Kommentar geschrieben am 04.01.2013
kommt drauf an, woher die Breadcrumb bei Dir kommt.
Möglich ist aber alles. Die Frage ist nur, ob das Plugin oder das Theme beim Update dann überschrieben wird, oder man die Funktion auslagern kann.
Kommentar geschrieben am 04.01.2013
Ok, vielen Dank. Ich versuche, eine Lösung zu finden.
Kommentar geschrieben am 04.01.2013
Ich sehe übrigens gerade, dass Du mehrere Plugins hast, die sich gegenseitig relativieren!
Bsp: Verschiedene Plugins spucken unterschiedliche og:image Meta Informationen aus!
Dann hast Du multiple Descriptions und und und…
Kommentar geschrieben am 04.01.2013
Klingt einleuchtend.
Ist schon zu viel verlangt, aber hättest Du einen Tipp, wie ich herausfinde, welche sich überschneiden?
Danke.
Kommentar geschrieben am 04.01.2013
Auf jeden Fall “Add-Meta-Tags WordPress plugin” mit “platinum seo pack”
“Add-Meta-Tags WordPress plugin” kannst Du Dir in diesem Fall sparen!
“SHR Open Graph Tags” kollidiert scheinbar mit im Theme manuell gesetzten Open Graph Tags
Kommentar geschrieben am 04.01.2013
Vielen lieben Dank, Viktor!
Ich versuche, die Probleme zu eliminieren.
Ein schönes Wochenende wünsche ich.
Kommentar geschrieben am 09.02.2013
Danke dir für diesen tollen Beitrag,
Danke dir
Kommentar geschrieben am 01.03.2013
Hi,
was genau mache ich mit dem Rich Snippets Code? Bringt es mehr, wenn Google die Breadcrumbs “indexiert”?
Grüße,
Hendrik
Kommentar geschrieben am 22.04.2013
Entdeckt, eingebaut und funktioniert. Super Lösung, danke für den Tipp. Schön das man dafür kein Plugin benötigt…
Kommentar geschrieben am 25.04.2013
Ich hab das eingebaut, nachdem ich erstmal das Text-Widget PHP-fähig gemacht habe (dank http://www.nerds-first-choice.de/wordpress/tipps-und-tricks/php-innerhalb-von-widgets-in-wordpress-erlauben/ ) und dann die Breadcrumbs in eine Widget-Area einbauen konnte
klappt alles. Ich habe aber ein Problem damit, daß fest “HOME” ausgegeben wird, was muß man anpassen, wenn der Menu-Text der Startseite ausgegeben werden soll?
Ansonsten alles prima! Merci,
Connie
Kommentar geschrieben am 25.04.2013
in der sechsten Zeile das Home ersetzen
Kommentar geschrieben am 25.04.2013
Viktor, das ist eine schnelle Antwort, merci!
Aber: durch was ersetzen? Das ist meine Frage…
ich hab das schon in der Zeile 6 gefunden, aber ich brauch für eine geplant mehrsprachige Seite eine Variable, wie krieg ich den jeweiligen Menu-Text da hinein? Das möchte ich gerne wissen, wäre das Sahnehäubchen ;=)
Kommentar geschrieben am 25.04.2013
ah sorry, überlesen. Kann ich Dir jetzt adhoc nicht sagen. Muss ich heute Abend mal schauen.
Kommentar geschrieben am 01.05.2013
[...] so dass man sich solche etweder selbst basteln oder per Plugin einbinden sollte. Ich rate zur WordPress Breadcrumb ohne Plugin, da ich generell kein Freund von Plugins bin, deren Funktionalität schnell selbst umgesetzt werden [...]
Kommentar geschrieben am 14.06.2013
Ich habe noch eine Abfrage eingebaut, ob die write_breadcrumb-Funktion auch existiert:
Das ersetzt den von dir geposteten Code an der entsprechenden Stelle im Template:
Wenn alles korrekt eingebunden ist, ist aber kein Unterschied zu merken.
Vielen Dank für das Tutorial, Viktor.