Ich habe stundenlang rumgespielt / gesucht und kann es immer noch nicht zum Laufen bringen, also gebe ich endlich nach und bitte um Hilfe.
Ich versuche, einen benutzerdefinierten Walker zu schreiben, der nur die aktuellen untergeordneten Seiten anzeigt, oder wenn keine untergeordneten Seiten vorhanden sind, werden die Seitengeschwister angezeigt.
Nehmen Sie zum Beispiel den folgenden Menübaum:
- 1,0
- 1.2.0
- 1.3.0
- 1.3.1
- 1.3.2
- 1.2.1
- 1.2.2
- 1.2.0
- 2,0
Nehmen wir an, ich bin auf der aktuellen Seite 1.2.0. Auf dieser Seite möchte ich seine Kinder anzeigen (1.3.0, 1.3.1, 1.3.2)
Wenn ich mich jedoch auf der Seite 1.2.2 befinde, sollte sie, da sie keine Kinder hat, die Geschwister der aktuellen Ebene anzeigen, sodass sie mich anzeigen sollten (1.2.0, 1.2.1, 1.2.2).
Antworten:
Dies ist der Walker, mit dem ich nur untergeordnete Elemente des aktuellen Menüelements angezeigt habe. Oder die Menüpunkte Geschwister, wenn es keine eigenen Kinder hat.
Es gibt Kommentare in der gesamten Klasse, die jeden Abschnitt erklären
Bringen Sie es wie bei jedem anderen benutzerdefinierten Walker in einem wp_nav_menu an
quelle
Ich hatte eine ähnliche Erfahrung. Vielleicht möchten Sie darüber nachdenken, die Seitenlogik aus dem Walker zu verschieben. Kompilieren Sie grundsätzlich die aktuelle Seitenhierarchie als Objekt. Verwenden Sie dann den Parameter 'exclude' in der Funktion wp_nav_menu. Nun würden die ausgeschlossenen Seiten davon abhängen, ob die aktuelle Seite untergeordnete Seiten hat. Wenn keine Kinder Brüder zeigen; Wenn Kinder und diese Kinder das Ende der Reihe sind, zeige Brüder und Kinder. Wenn Kinder und Enkel vorhanden sind, schließen Sie Brüder aus und zeigen Sie Kinder und Enkel.
quelle
exclude
Parameter beziehen Sie sich? Ich schaue mir die Dokumentation an und sehe keinen Hinweis darauf.wp_list_pages()
in diesem Zusammenhang zu verwenden, das ist also eine interessante Idee.