Warum verschwindet meine Seiten Navigation?

  • Hallo,

    ich habe mir 2 Menüs mit Wp gebaut.
    Ein Hauptmenü im Header was die normalen Seiten wie gehabt ausgibt:

    PHP
    <?php wp_list_pages('sort_column=menu_order&title_li=&depth=1&exclude=16'); ?>

    In der Sidebat habe ich mir dann noch ein Untermenü angelegt damit auch diese Punkte erreichbar sind sobald ich die Obere Navigation anklicke.

    PHP
    <?php if (is_page('Leistungen')) { ?>
                         <ul>
                             <?php wp_list_pages('child_of=5&sort_column=menu_order&title_li=&depth=2');?>
                         </ul>
                    <?php } ?>

    Bisher war alles einleuten und es funktioniert auch einwandfrei!
    Nun zu meinem Problem.

    Wenn ich einen Unterpunkt in der Subnavigation anklicke komme ich auf die gewünschte unterseite, allerdings verschwindet auch gleich das ganze Menü was sehr doof ist.

    Der User müsste wieder den Hauptpunkt anklicken um auf den Unterpunkt zu kommen.

    Ich kenne auch den Grund.
    In der Abfrage oben sage ich ja auch: zeige das Menü wenn du auf der Seite Leistungen bist, sonst nicht.

    Wie kann ich Wordpress sagen das er mir das Submenü auch in allen Unterpunkten anzeigen soll?

    Jemand einen Rat?

    Danke!

    • 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

  • Dann nimm das IF doch einfach weg:

    PHP
    <ul>
                             <?php wp_list_pages('child_of=5&sort_column=menu_order&title_li=&depth=2');?>
                         </ul>


    Oder hab ich da was falsch verstanden.

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Danke für die Antwort.

    Nein so leicht ist es nicht.
    Wenn ich die Abfrage weg mache, Zeigt er mir das Untermenü von Leistungen immer.

    Ich will es ja nur sehen wenn ich auf Leistungen bin (was ja geht) und auf dem Unterpunkt(was noch nicht geht)

    Klicke ich auf --> Leistungen (zeigt er mir das Untermenü von Leistungen)
    Klicke ich auf --> Leistungen --> Promotion (verschwindet das Untermenü weil ich mich ja nicht mehr auf der Seite LEISTUNGEN befinde sondern noch eine ebene tiefer)

    Kann man bei der if Abfrage WP nicht einfach sagen: Leistungen und alle
    childrens = Menü x Anzeigen ?

  • ahhh, jetzt hab ich dich verstanden. Du suchst wahrscheinlich post_parent.

    Code
    if ( is_page('Leistungen') || $post->post_parent == 'XX' ) {

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • xx steht für die kategorie id wenn ich das nun richtig gemacht habe.

    nun klappt es auch das der unterpunkt angezeigt wird.
    nun ist es aber leider so das ich ja 3 ebenen habe

    hauptmenü-->unterpunkt1-->unterpunkt2
    zb. leistungen-->dachdecken-->fenstereinbau

    klicke ich auf leistungen erscheint das untermenü1 mit den verschiedenen punkten.klicke ich nun auf den unterpunk2 sehe ich die seite(letzte menü ebene) aber da fällt dann wieder das menü weg.

    also wenn ich das richtig deute sagt doch der befehl

    PHP
    <?php if ( is_page('Leistungen') || $post->post_parent == '5' ) {?>
                         <ul>
                             <?php wp_list_pages('child_of=5&sort_column=menu_order&title_li=&depth=2');?>
                         </ul>
                    <?php } ?>

    zeige das untermenü1&2 nur wenn die seite leistungen oder alle untergeordneten kategorien (child kategorien) angeklickt werden.

    aber warum nimmt er es in ebene2 dann doch wieder raus?

    danke für die bisherige große hilfe!!!!

    Nick

    edit:

    ich habe es mit dem code versucht den ich im netz gefunden habe

    <?php if (is_page('Leistungen') || $post->post_parent=="5"|| $post->post_parent->post_parent=="5") { ?>

    leider geht der auch nicht

    Einmal editiert, zuletzt von stilnick (2. Februar 2009 um 09:26)

  • Du könntest parent und grandparent vorher definieren:

    PHP
    <?php
    $parent = $post->post_parent;
    $grandparent = $parent->post_parent;
    ?>

    und dann ungetestet:

    PHP
    <?php if ( is_page('Leistungen') || $parent == '5' || $grandparent == '5' ) {?>

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Danke für den Tipp.

    Habe es eben mal gemacht.
    Leider macht er das auch nicht.
    In der 3. Ebene wird das Menü nicht angezeigt.

    Es muss ja dann irgend ein Parameter nicht stimmen.

    Aber eigentlich wüsste ich nicht was Wp nicht versteht:

    PHP
    <?php if ( is_page('Leistungen') || $parent == '5' || $grandparent == '5' ) {?>    [B]// Zeige das Menü nur wenn Leistungen(Kategorie 5), der Unterpunkt1 und der Unterpunkt2 ausgewählt ist.[/B]
         <ul>
              <?php wp_list_pages('child_of=5&sort_column=menu_order&title_li=&depth=2');?>  [B]//zeige Menü in der Tiefe 2 (2 Ebenen)[/B]
         </ul>
    <?php } ?>

Jetzt mitmachen!

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