CMS: Menü mit Unterpunkten, geht das?

  • Grüß Euch!

    Ich habe mich bereits durchs Forum geschmökert und teilweise wurde meine Frage schon beantwortet, aber komplett krieg ichs einfach nicht hin. Folgendes Problem habe ich: Ich möchte Wordpress als CMS nutzen. Mein Theme soll folgende Aufteilung haben:

    4 Hauptnavigationspunkte
    -> von denen jeder (nach Klick) beliebig viele Unterpunkte haben kann.

    Statisch habe ich das jetzt bisher so gelöst, dass meine 4 Hauptpunkte 4 Seiten sind, denen die jeweils zu einem Punkt gehörenden Seiten als Unterseiten zugeordnet sind.
    Die Links habe ich dann aus der Liste in der Sidebar (die ich dann am Ende ausblenden würde) kopiert und in jeweils angepasst Templates eingefügt.

    Soweit so gut, das funktioniert theoretisch. Solange man keinen zusätzlichen Navipunkt wünscht oder löschen will. Dann müsste ich in den jeweils betroffenen Templates per Hand einfügen, löschen, etc.

    Nun zu meiner Frage: Das kann man doch sicher auch mit PHP lösen. Ich könnte mir vorstellen, dass man dazu die Sidebar-Navi zweckentfremden müsste, dann würden neue Navipunkte auch automatisch erscheinen. Aber wie bringe ich der Sidebar bei, dass sie bei Punkt 1 auch NUR die Unterseiten von Punkt 1 anzeigt, usw...

    Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt, ansonsten könnte ich auch noch eine Skizze anfügen wenns denn hilft...

    Vielen Dank schon mal für Anregungen!

    Gruß,
    Andi

    • 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

  • wenn das vier Navipunkte sind sind es vier statische Seiten mit *Kinderseiten*


    das geht einfacher:

    sagen wir die vier Navipunkte haben folgende IDs 2 3 4 5

    die magst du nur im header haben


    PHP
    <ul><?php wp_list_pages('include=2,3,4,5&title_li=' ); ?></ul>

    anzeige ohne Überschrift die Links erscheinen zwischen den lis


    genau diese 4 magst Du daher nicht in der Sidebar haben..

    PHP
    <ul><?php wp_list_pages('exclude=2,3,4,5&title_li=' ); ?></ul>

    also was Du oben includest excludest du unten (hervorragendes Denglsich ) ;)


    ist oft wiederholbar ;)

    lg

  • Super, das spart schon mal einiges an Quellcode, Dankeschön! :-D

    Bleibt aber noch das Problem, dass ich mit dieser Lösung leider immer noch im Falle einer neuen Seite etc. wieder das Template anfassen müsste. Bestenfalls nur das eine Betroffene oder in meinem Fall, der ich für jede Unterseite zwecks Highlighten des Links ein eigenes Template verwende, jedes Template...
    Gibts vielleicht noch eine Lösung?

  • Super, das spart schon mal einiges an Quellcode, Dankeschön! :-D

    Bleibt aber noch das Problem, dass ich mit dieser Lösung leider immer noch im Falle einer neuen Seite etc. wieder das Template anfassen müsste. Bestenfalls nur das eine Betroffene oder in meinem Fall, der ich für jede Unterseite zwecks Highlighten des Links ein eigenes Template verwende, jedes Template...
    Gibts vielleicht noch eine Lösung?

    zwecks highlighten brauchste da kein eigenes template

    das *ausgeworfene* html von wp bietet genug css class, um das zu lösen,

    Du brauchst eigentlich nur ins Template , wenn Du in der header navi was ergänzen magst, sonst nicht mehr

    lg

  • ...oder eben wenn eine neue Unterseite dazukommt. Oder habe ich das falsch verstanden?


    nehme alles zurück :( :(

    wenn man excludet schmeißt man die Kindseiten raus,
    nutzt man include holt man sich die Kindseiten nicht

    versteh dies einer...

    tut mir leid...

    ich dachte es auch ehrlichst anders..
    lg

  • Aber es funtioniert!

    man darf nur nicht jene Hauptseite exkludieren, deren Kinderseiten man anzeigen möchte!

    Beispiel;

    im Header habe ich

    PHP
    <ul><?php wp_list_pages('include=10,11,12,13&title_li=' ); ?></ul>

    und im Template dann:

    PHP
    <ul><?php wp_list_pages('exclude=11,12,13&title_li=' ); ?></ul>

    Einziger Wermutstropfen: Es wird zusätzlich zu den Kinderseiten noch einmal die Hauptseite angezeigt in Form von

    Hauptseite Hauptseite Hauptseite Hauptseite (Hauptnavi)


    (Subnavi)
    Hauptseite
    -Kinderseite 1
    -Kinderseite 2
    .
    .
    .

    Wie könnte ich NUR die Kinderseiten anzeigen?

  • Das da gell?

    PHP
    <?php
    $children = wp_list_pages('title_li=&child_of='.$post->ID.'&echo=0');
    if ($children) { ?> 
    <ul> 
    <?php echo $children; ?> 
    </ul> 
    <?php } ?>

    Funktioniert suuuuuper! :-) Vielen vielen Dank!

  • Auf Unterseite weiterleiten

    Ich wollt grade sagen.
    Mit "depth of" kann man das ja eigentlich steuern oder?

    Die funktion mit den Unterseiten ist aber neu :-D hab sowas ähnliches vor wochen gesucht und da war die Referenz über Subpages in WP_List noch nicht drin.

    Aber eine Frage hätte ich auch!

    Wenn ich jetzt im Header meine Hauptnavi habe und in der Sidebar die Unterseiten: Wie stelle ich es an das ich sofort auf die erste Unterseite weitergeleitet werde wenn ich auf das dazugehörige Elternelement im Header klicke?

    Ein Beispiel:

    Die Hauptseite "xyz" hat 6 Unterseiten. Den Unterseiten habe ich id's vergeben und sie so sortiert (sort_column).. Wenn ich jetzt auf "xyz" klicke will ich nicht auf die Seite kommen - ich will stattdessen auf eine ihrer Unterseiten weitergeleitet werden!?

    Kann mir jemand helfen?

Jetzt mitmachen!

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