Support » Allgemeine Fragen » Untermenü in Sidebar
Untermenü in Sidebar
-
Ich verwende individuelle Menüs als Widgets in der Sidebar, diese sind aber nicht als Untermenü definiert und daher nicht mit dem Hauptmenü verknüpft.
Wie bekomme ich sowohl auf den Einzelseiten mit dem Menü den aktiven Menüpunkt, als auch die Verknüfung mit dem Hauptmenü hin?
Es ist das Genesis-Framework und das Lifestyle Pro Theme, von den Entwicklern gibt es dazu leider keinen Support.
Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]
-
Hab ich dich richtig verstanden: du möchtest bei Aufruf einer Elternseite,
dass sie im Hauptmenü und im Navigationsmenü der Sidebar als gerade aktiv angezeigt wird und in der Sidebar die Unterseiten direkt eingeblendet werden?Dann schau dir mal das Plugin BE Subpages Widget an.
Hey Bego, vielen Dank!
Ja, genau richtig. Ich blende quasi pro Seite, die ein Untermenü hat, die entsprechende Sidebar mit dem Menü ein.Wird das mit dem Plugin funktionieren? Die verschiedenen Menüs sind ja nicht als Untermenü/Unterseiten definiert?
Oder muss ich erst alle Seiten als Untermenü anlegen und sie für das Hauptmenü ausblenden? Klingt kompliziert…
Unterseiten werden dadurch festgelegt, dass du beim Bearbeiten in den Seitenattributen eine Elternseite angibst (geht auch nachträglich über Quickedit). Mit den eigenen Menüs hat das nichts zu tun.
Super! Das probiere ich aus, vielen Dank!
Ich habe das Plugin getestet, es listet mir nun automatisch die zugehörigen Seiten, jedoch weiterhin ohne aktive Zustände. Die Unterseiten hatte ich mit den Seitenattributen geändert.
Nachteil ist auch noch, dass wir sehr lange Seitentitel haben, die nun erscheinen. In den eigenen Menüs hatte ich die Titel angepasst.
Gibt es vielleicht noch eine andere Lösung, die Menüs miteinander zu verknüpfen?
Ich habe gerade nochmal ein anderes Plugin ausprobiert, dass Eltern-/Kindseiten in der Sidebar anzeigt: Advanced Sidebar Menu. Gerade angezeigte Unterseiten bekommen die CSS-Klasse
current-page-item
zugewiesen, die du mit einer zusätzlichen CSS-Regel im Customizer nach Belieben hervorheben kannst.Sobald du automatisch Unterseiten aufführen möchtest, werden immer die Seitentitel verwendet – mit einem eigenen Menü und den Bezeichnungen darin hat das schließlich nichts zu tun und es wird auch nicht auf deine in dem eigenen Menü abgeänderten Seitentitel zurückgegriffen.
Sicher könnte man als Workaround etwas programmieren, das für angezeigte Unterseiten und Elternseiten statt des Seitentitels ein benutzerdefiniertes Feld mit einem alternativen Titel anzeigt.
Alternativ kannst du für jede Elternseite ein eigenes Menü (mit berabeiteten Setentiteln) mit der Elternseite und den Unterseiten erstellen und dann mit dem Plugin Widget Logic nur auf den zugehörigen Seiten und Unterseiten anzeigen. Die „Kondition“, die du im Widget im Feld Widget logic eintragen musst ist dann sinngemäß
is_page(array( 'Elternseite', 'Unterseite 1', 'Unterseite 2', 'Unter-Unterseite 2a' ) )
Auch hier bekommt der Menüeintrag der gerade angezeigten Seite die CSS-Klasse
current-page-item
, die du wieder im Customizer nach Belieben formatieren kannst.Allerdings würde ich diese Vorgehensweise nur bei überschaubarem Aufwand betreiben, weil hier viel manuell gepflegt werden muss.
Vielleicht hatte ich einen Denkfehler? Ich würde gern meine angelegten Menüs mit einem aktiven Zustand pro angewählter Seite hervorheben und mit dem jeweiligen zugehörigen Hauptmenüpunkt (Elternseiten) verknüpfen.
Die Lösung dafür wäre praktikabler, da ich schon alle Menüs vorhanden sind. Ich dachte das ginge nun, da ich ja die Elternseiten bereits definiert hatte?
„Ich würde gern meine angelegten Menüs mit einem aktiven Zustand pro angewählter Seite hervorheben …“
Sorry, den Satz verstehe ich nicht.
Du möchtest ein ganzes Menü hervorheben?
Oder den Menüpunkt der gerade aufgerufenen Seite?Die aktuell ausgewählte Seite bekommt im Menü die CSS-Klasse
current_page_item
zugewiesen und Eltern-Elemente bekommen die Klassecurrent_page_ancestor
. Diese Klassen kannst du dann per CSS abweichend formatieren.In der Sidebar ist jeweils ein individuelles Menü platziert.
Dieses Menü soll als Untermenü dienen, d.h. die gerade aufgerufene Seite soll im Menü aktiv hervorgehoben werden und auch der zugehörige Hauptmenüpunkt (die Elternseite) aktiv sein.Die Schwierigkeit für mich besteht darin, dass die Menüs eben nicht (wie das Hauptmenü) seitenübergreifend funktionieren, sondern pro Unterseite jeweils ein einzelnes Menü platziert wurde.
Muss ich nun für jede aufgerufene Seite per CSS die Zustände definieren?
Irgendwie reden wir aneinander vorbei.
Nehmen wir mal an, du hast folgende Seitenstruktur:
Home
Über uns
Unsere Abteilungen
– Forschung
— Elektrik
— Mechanik
– Entwicklung
– Buchhaltung
Kontakt
Impressum
DatenschutzOben auf der Seite fügst du ein horizontales Menü ein:
Home | Über uns | Unsere Abteilungen ▼ | KontaktUnten in der Fußzeile
Impressum | Datenschtz | KontaktFür alle Seiten, auf denen die Abteilungen vorgestellt werden, fügst du in der Sidebar ein eigenes vertikales Menü ein. Damit es nur auf Abteilungsseiten aufgeführt wird, verwendest du das Plugin Widget Logic. Das Menü sieht so aus:
- Unsere Abteilungen
- Forschung
- Elektronik
- Mechanik
- Entwicklung
- Buchhaltung
Sobald jetzt die Unterseite Forschung aufgerufen wird, bekommt der Menüpunkt in der horizontalen Navigation oben und in der Seitenleiste von WordPress die CSS-Klasse
current_page_item
zugewiesen. Die kannst du im Customizer durch eine CSS-Regel hervorheben:
.sidebar .current_page_item { color: red; background: yellow; font-weight: bold; }
Rufst du nun die Seite Entwicklung auf, wird diese im Menü der Seitenleiste entsprechend hervorgehoben. Ob Eltern- oder Unterseiten hervorgehoben werden, kannst du mit
.current_page_ancestor
und.has_children
nach Belieben formatieren.Die Zuweisung der CSS-Klassen erfolgt aber gleichzeitig in allen Menüs, in denen der Menüeintrag vorkommt (also in diesem Beispiel im horizontalen Menü oben und in der Sidebar). Ob die Menüeinträge gleichzeitig hervorgehoben wird, hängt nur von deinen CSS-Regeln ab.
Hilft dir das weiter?
Sorry, wenn es zu verwirrend wird!
Oben steht der Link zur Testseite, könntest du dort schauen, ob es wie du es gerade erklärt hast, funktioniert? Besten Dank!Auf die Seite kann ich nicht zugreifen. Ist mit .htpasswd geschützt.
Richtig. Kann ich dir eine PN schicken?
Sorry, aber das bringt fürs Forum nichts.
Ok, das verstehe ich. Ich werde versuchen, die Erklärung von oben umzusetzen und melde mich nochmal.
- Das Thema „Untermenü in Sidebar“ ist für neue Antworten geschlossen.