Support » Allgemeine Fragen » 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]

Ansicht von 15 Antworten - 1 bis 15 (von insgesamt 20)
  • 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.

    Thread-Ersteller diggital2016

    (@diggital2016)

    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.

    Thread-Ersteller diggital2016

    (@diggital2016)

    Super! Das probiere ich aus, vielen Dank!

    Thread-Ersteller diggital2016

    (@diggital2016)

    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.

    Thread-Ersteller diggital2016

    (@diggital2016)

    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 Klasse current_page_ancestor. Diese Klassen kannst du dann per CSS abweichend formatieren.

    Thread-Ersteller diggital2016

    (@diggital2016)

    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
    Datenschutz

    Oben auf der Seite fügst du ein horizontales Menü ein:
    Home | Über uns | Unsere Abteilungen ▼ | Kontakt

    Unten in der Fußzeile
    Impressum | Datenschtz | Kontakt

    Fü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?

    Thread-Ersteller diggital2016

    (@diggital2016)

    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.

    Thread-Ersteller diggital2016

    (@diggital2016)

    Richtig. Kann ich dir eine PN schicken?

    Sorry, aber das bringt fürs Forum nichts.

    Thread-Ersteller diggital2016

    (@diggital2016)

    Ok, das verstehe ich. Ich werde versuchen, die Erklärung von oben umzusetzen und melde mich nochmal.

Ansicht von 15 Antworten - 1 bis 15 (von insgesamt 20)
  • Das Thema „Untermenü in Sidebar“ ist für neue Antworten geschlossen.