Submenü auf definierten Seiten auf display:block;: Individuelle Klasse hinzufügen?

  • Ich habe ein WP-Theme aufbereitet und die Submenüs ein-/ausblenden über die Klassen current-page-ancestor und current_page_parent und current-menu (display:block) klappt alles soweit. Folglich kann man aber immer nur das Submenü aufklappen, wenn die aktuelle Submenü-Seite zu der betreffenden Elternseite bzw. zu dem Eltern-Menüpunkt gehört.

    Nun will ich aber ein Submenü auch anzeigen lassen, wenn andere Seiten gerade aktiv sind, die nicht in das obige Raster fallen. Bisher kenne ich nur die Option, dass ich nochmal gesondert den Elternmenüpunkt anspreche (z.B. menu-item-118) und dort das Submenü auf display:block setze. Dann aber ist das Submenü auf jeder (!) Seite des Projekts sichtbar! Und das will ich wiederum auch nicht!

    Ich will selbst definieren können, auf welcher Seite das Submenü sichtbar ist! Ich könnte es mir so vorstellen, dass man in den Elternmenüpunkt noch eine zusäzliche individuelle Klasse fallweise (if PageID=328,398 usw) hinzufügt, also genau dann, wenn die betreffende Seite (definiert über die Page-ID) aufgerufen wird. Und diese Klasse bewirkt dann ein display:block.

    Frage ist nun, ob man überhaupt eine Klasse in den Bereich wie folgt noch mit hineindefinieren kann?

    HTML
    <ul id="menu-sidebar" class="menu"><li id="menu-item-118" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-118"><a href="#link">Elternmenüpunkt</a>


    Z.Beispiel soll auf der Startseite das so sein:
    <li id="menu-item-118" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-118 display-on">

    Wenn das nicht geht, eine css-Klasse in einem Menüpunkt fallweise hinzuzufügen, hätte ich noch die Idee, in der sidebar.php fallweise dem Divcontainer des Menüs noch eine Klasse hinzuzufügen und das Menü/Submenü dann darüber anzusprechen.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Hallo clark
    Ich bin jetzt nicht ganz schlau daraus geworden was du willst, aber du kannst einem Menü über den String "menu_class" beliebige Klassen mitgeben -> http://codex.wordpress.org/Function_Reference/wp_nav_menu
    Eventuell musst du dafür dann dein Menü in zwei Menüs aufteilen (entsprechend gestylt merkt der Besucher davon aber nichts).
    Oder du löst das über Custom-Post-Types und/oder verschiedener Sidebars.
    LG, Pixselig

  • Ok, man kann also Klassen hinzufügen. Mein Wunsch ist nun, dass die Klasse nur auf bestimmten Seiten hinzugefügt wird. Habe ich also die Startseite (Page Id 118 wie oben angegeben) und eine andere Unterseite (Bspw. ID 294 ), dann soll die Klasse bei beiden hinzugefügt werden. Habe ich aber eine andere Seite (bspw. Page ID 113 ), dann soll die Klasse nicht hinzugefügt werden.

  • Das würde ich über zwei nur marginal unterschiedliche Templates lösen (eines mit der speziellen Klasse und eines ohne, ansonsten gleich). Google dazu nach Custom Post type. Das hat dann auch den Vorteil, dass du bei jeder neu erstellten Seite im Backend ganz einfach auswählen kannst welches Template verwendet werden soll (und damit auch ob das jeweilige Submenü nun angezeigt werden soll oder nicht).

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!