Ich habe einen einfachen Breadcrumb für WordPress gesucht und nichts gefunden, das mir gefallen hat. Entweder funktionierte der Code nicht, bediente nur eine Ebene oder er war einfach zu kompliziert.
Daher habe ich schnell einen eigenen geschrieben. Folgende Funktion in die functions.php einfügen:
1 2 3 4 5 6 7 8 9 10 11 12 | function rm_breadcrumb() { global $post; // do not show on front page if (is_front_page()) return; // get all ancestors of page in reverse order $bca = array_reverse(get_post_ancestors($post)); // loop over all ancestors foreach ($bca as $bc) $breadcrumb = $breadcrumb."<a href="".get_permalink($bc)."">".get_the_title($bc)."</a> » "; // add title of current page to end $breadcrumb = $breadcrumb.get_the_title($post); return $breadcrumb; } |
Einfügen der Breadcrumbs in der page.php Deines Themes:
1 | <!--?php echo rm_breadcrumb(); ?--> |
Das war’s auch schon, zu sehen auf den statischen Seiten dieser Homepage… Beispiel
Super, Danke dir. Ähnlich wie du war ich jetzt auch einige Zeit damit beschäftigt eine Lösung ohne Plugin zu finden und bin auf viele Varianten gestoßen die entweder nicht funktionierten oder nicht meinen Anforderungen entsprachen. Deine Lösung war innerhalb weniger Sekunden eingebaut funktionierte und ist genau was ich wollte. Vielen Dank hierfür!
Vielen Dank für dieses Code-Snippet! Es war für mich der mit Abstand kürzeste und verständlichste Code, den ich bei meiner Suche nach einer geeigneten Lösung gefunden habe. Auch eine kleine Anpassung (Voranstellen des Namens der Internet-Seite, Austausch des Trennzeichens) konnte schnell erledigt werden. Klasse!
Ganz herzlichen Dank für die Hilfe.
Grundsätzlich funktioniert die Funktion!
Was bei mir fehlt ist allerdings,
wenn ich innerhalb einer Seite ein Artikel aufrufe,
dann sehe ich breadcrumb nicht mehr.
Zum anderen ist dieser breadcrumb unterhalb der Seite
und nicht unmittelbar unterhalb des Headers.
Wie kann ich diese beiden Probleme lösen?
1. dass bei Artikel-Auswahl breadcrumb angezeigt wird
2. dass breadcrumb unmittelbar unterhalb des Headers-Bild
angezeigt wird. (ich benutze wp 3.4.1 mit twentyten
Mein Dank im Voraus.
JessiKo
JessiKo, Breadcrumbs funktionieren nur auf Pages, nicht auf Artikeln, da es bei Artikeln keine Hierarchie gibt, die angezeigt werden könnte…
Was die Positionierung angeht, musst Du das an die Stelle setzen, wo Du es haben willst (unterhalb vom Header) und nicht ans Ende der Seite.
Grüße,
Rainer
Hallo Rainer,
Danke für die Antwort.
Ich will ja nur, dass zumindest der breadcrumb noch angezeigt wird, wenn man ein Artikel liest. Kann man die Funktion nicht in dem Ereignismodul aufrufen, das aktiv ist, wenn man auf ein Artikel klickt?
gr.
jessi
Hi Jessi,
Der Breadcrumb wird auf Artikeln nicht unterdrückt, ist nur leer, da auf Artikeln get_post_ancestors($post) leer ist. Du kannst das ja abfragen und wenn es leer ist, etwas anderes zurückgeben.
Grüße,
Rainer
Hallo Rainer,
function rm_breadcrumb() {
if (empty(get_post_ancestors($post)))
{
$bca = array_reverse(get_post_ancestors($post));
foreach ($bca as $bc) $breadcrumb = $breadcrumb.“„.get_the_title($bc).“ » „;
$breadcrumb = $breadcrumb.get_the_title($post);
}
return $breadcrumb;
>>so etwa?
Hallo Jessi,
Damit gibt die Funktion nie etwas zurück, weil der Breadcrumb nur dann zusammengebaut wird, wenn er leer ist 🙂
Ungetestet:
function rm_breadcrumb() {
$bca = array_reverse(get_post_ancestors($post));
foreach ($bca as $bc) $breadcrumb = $breadcrumb.“<a href='“.get_permalink($bc).“‚ rel=“nofollow“>“.get_the_title($bc).“</a> » „;
$breadcrumb = $breadcrumb.get_the_title($post);
if (strlen($breadcrumb) == 0) return „Alternativtext“;
else return $breadcrumb;
}
Grüße,
Rainer