dynamicinternet Webdesign

Das Blog

Themen, Tutorials sowie Tipps & Tricks über Webdesign, (X)HTML und CSS, Programmierung, WordPress und was uns sonst noch bewegt.

RSS abonnieren

WordPress Seitennavigation

In meinem neuen Projekt habe ich vorwiegend mit Pages zu tun. Um diese vernünftig zu strukturieren und trotz aller Verschachtelungen anzuzeigen, sollte man sich näher mit dem WordPress Template Tag wp_list_pages auseinandersetzten.

Schauen wir uns einmal wp_list_pages im default_de Theme an:

Ihr findet wp_list_pages(‘arguments’) in der sidebar.php so ziemlich in der Mitte.


<?php wp_list_pages('title_li=<h2>Seiten</h2>'); ?>

Das Resultat ist eine Liste aller angelegten Seiten (Pages) unterhalb der Überschrift “Seiten”. Manchem wird das reichen, da ein Blog meistens nur sehr wenige Pages hat. Möchte man aber zum Beispiel eine horizontale Menüleiste haben, muß man den Template Tag schon etwas anpassen.


<div id="topnavigation">
 <ul>
 	<?php wp_list_pages('title_li=&sort_column=menu_order'); ?>
 </ul>
</div>

Wir haben das Argument title_li leer gelassen, was uns die Pages in <li> Tags schreibt, sort_column=menu_order sortiert uns die Seiten in der Reihenfolge, wie wir sie beim Seite schreiben unter Reihenfolge definiert haben.
 Die Sortierung ist möglich nach:

  • post_title – Seitentitel
  • menu_order – Reihenfolge der Seiten
  • post_date – Erstellugsdatum der Seiten
  • menu_modified – Aktualisierungsdatum der Seiten
  • ID – nach der Seiten ID
  • post_author – nach Reihenfolge der Autoren ID’s
  • post_name – nach Titelform der Seiten

Diese Liste können wir mit CSS zu einem schicken Menü verwandeln, was aber hier nicht Bestandteil ist.

WordPress fügt automatisch alle von uns angelegten Seiten in das Menü ein. Was, wenn wir aber eine Seite als Unterseite einer Seite anlegen? Houston, we have a problem! Das schöne Menü wird zerissen, weil WordPress logischerweise die Liste so verschachtelt, wie wir die Seitenhierarchie erstellt haben.
 Je nachdem, welche Anforderungen wir für unser Menü haben, können wir per Argument die Tiefe der darzustellenden Seiten beeinflussen:


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

Das Argument depth=1 teilt WordPress mit, das nur Seiten der obersten Hierarchiestufe angezeigt werden sollen. Der Wert kann je nach Tiefe der Seitenstruktur erhöht werden. depth=-1 Zeigt alle erstellten Seiten in einer Liste ohne die Hierarchie zu berücksichtigen.

Wollen wir bestimmte Seiten von der Navigation ausschließen, verwenden wir


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

wobei mit dem Argument exclude die ID der jeweiligen Seite angegeben werden muß. In diesem Beispiel ist es die Seite mit der ID 4, welche von der Navigation ausgeschlossen wird. Es können auch mehrere ID’s kommagetrennt angegeben werden. Ebenfalls ist es möglich, nur bestimmte Seiten einzuschließen, was man verwendet, ist Geschmackssache:


<?php wp_list_pages('depth=1&include=1,2,4&title_li=0&sort_column=menu_order'); ?>

Ok, noch sind wir nicht am Ende. Mal angenommen, ihr habt euer Hauptmenü mit Home, Blog und Kontakt. Die Seite Kontakt hat die Unterseiten Impressum und Datenschutzerlärung. Ihr wollt aber die Seiten Impressum und Datenschutzerklärung nicht in der Navigationsleiste haben, sondern in der Sidebar und auch nur dann, wenn man auf Kontakt geklickt hat. Hier der Code:


<div id="topnavigation">
 <ul>
 	<?php wp_list_pages('depth=1&title_li=&sort_column=menu_order'); ?>
 </ul>
</div>  

// in der sidebar.php
<?php if (is_page('kontakt')) { ?>
 <ul>
 	<?php wp_list_pages('child_of=4&depth=1&title_li=&sort_column=post_name');?>
 </ul>
<?php } ?>

In der Topnavigation wie gehabt nur die obersten Seiten. In der sidebar.php nutzen wir zuerst das conditional Tag is_page(‘konatkt’), wo wir prüfen, ob es auch wirklich sie Seite Kontakt ist. Ihr müßt aber in den Klammern die Titelform (post_slug) eintragen, nicht die Überschrift der Seite. Wenn also die aufgerufene Seite die Kontaktseite ist, geben wir deren Unterseiten aus. Das geschieht mit child_of=4, wobei die Kontaktseite hier die ID 4 hat.
 depth kann in diesem Beispiel weggelassen werden, da es keine Unterseiten von Impressum und Dateschutz gibt. Sollte jedoch so ein Fall eintreten, müßt ihr bei depth aufpassen. Da wir durch child_of schon eine Ebene tiefer in der Seitenhierarchie sind, bezieht sich die 1 auf die aktuelle Ebene und 2 wären dann die Unterseiten von Impressum und Datenschutz. Verstanden?

Ein weitere Möglichkeit, die Auflistung von Seiten zu beinflussen, wären meta_key(‘argument’) und meta_value(‘argument’). Über die Verwendung dieser benutzerdefinierten Felder (custom fields) habe ich ein Tutorial geschrieben.

Eins ist bei der Navigation von Seiten und Unterseiten noch wichtig: WordPress erzeugt die li Tags mit entsprechenden CSS Klassennamen, welche für das Aussehen der Navigation und die Kennzeichnung der aktuellen Seite nötig sind.


Standardklasse einer nicht angeklickten Seite
<li class="page_item">  

Klasse der aktuell angeklickten Seite
<li class="page_item current_page_item">  

Klasse der aktuellen Oberseite wenn eine
Unterseite angeklickt wird
<li class="page_item current_page_parent">

Diese können dann wie gewohnt im Stylesheet ausgezeichnet werden.

Sollte ich etwas vergessen haben, oder Fragen auftauchen, bitte das Kontaktformular strapazieren ;) .

60 Kommentare
  1. Daniel sagt:

    Ich versuche mich gerade an meinem ersten eigenen Wordpresstemplate und dieser Beitrag hat mich schon mal ein ganzes Stück weiter gebracht. Die Navigation ist nun also wie gewünscht …

    Vielen Dank und Grüße aus Köthen!

  2. Micha sagt:

    Oh, das freut mich. Wenn du mehr Tipps brauchst, schau dir vielleicht mal die Tutorials WordPress Themes Step by Step an.

  3. Heiko sagt:

    Moin :)

    Nettes Tutorial, nur leider ab Wordpress 2.3 nicht mehr umsetzbar :(

    Hast Du schon herausgefunden, wie man bei 2.3 mit den Widgets die Depth einstellen kann?
    Man kann im Theme Editor dämllicher Weise nur den Namen der Seiten ändern…aber nicht die Struktur :(

    Und da ich MyGallery nutze, habe ich etliche Unterebenen…sieht ohne depth Einstellung sehr bescheiden aus :(

    Danke schonmal
    Heiko

  4. Micha sagt:

    @Heiko, bei wp_list_pages hat sich in der Version 2.3 nichts geändert. Wenn Du alle Unterseiten darstellen willst, kannst Du depth=0 eintragen.
    Mygallery kenn ich nicht, dazu kann ich Dir nichts sagen.
    Bei den Widgets müßtest du den Code erweitern, oder selbst eins schreiben, um erweiterte Möglichkeiten zu haben.
    Ich hab mir mal Deine Seite angesehen, ich würde bei den Seiten die Listenelemente weniger einrücken, Platz ist ja genug da.
    LG
    Micha

  5. Heiko sagt:

    Danke für den Hinweis. Aber in der Sidebarphp steht seit dem Update auf 2.3 und ein Widget fähiges Theme nur noch das hier: ‘ . __(‘Pages’) . ” ); ?>

    Egal was ich daran ändere…interessiert meine Seite keinen Meter :(

  6. Micha sagt:

    Du mußt in deinem Stylesheet Ändeungen vornehmen:
    #pages ul{margin-left:0;}
    #pages ul li {margin-left:5px;} /*1.level*/
    #pages ul li ul li {margin-left:10px;} /*2.level*/
    #pages ul li ul li ul li {margin-left:15px;} /*3.level*/
    usw…
    Du kannst die werte verändern, wie es dir gefällt, du kannst auch %, em oder andere Maßeinheiten wählen.
    Das gleiche machst du dann auch für die anderen Listen in der Sitebar.

  7. Heiko sagt:

    Okay. Die Formatierung ist schonmal klar. Danke!

    Nur wo stelle ich die depth der Seiten ein? Ich möchte bei der Galerie nur “Galerieübersicht” und eventuell noch die Jahreszahlen dastehen haben. Die Unterpunkte sollen nicht erscheinen.

    Früher ging es mit depth 1 in der sidebar.php – aber das war einmal :(

  8. Micha sagt:

    Wenn du ein Widget für die Seiten verwendest, hast du keine andere Wahl.

  9. Jared sagt:

    GENAU das brauche ich grade!
    Danke dir!
    ich werde aber diesbezüglich noch auf dich zukommen wenn ich darf?!

  10. Micha sagt:

    @Jared: klar, du darfst ;)

  11. Jared sagt:

    Jetzt stehe ich vor einem mehr oder weniger großem Problem! Ich hab die Seiten in topnavi so ausgegeben aber da kein Home vorhanden ist, hab ich den Link händisch eingetragen: (ich hoffe deine Codeansicht funktioniert)

    <a href="">Home

    Wie bekomme ich es denn jetzt hin das Home auch wirklich nur dann markiert angezeigt wird wenn es aktiv ist! Zurzeit bleibt es immer aktiv was ich ja nachvollziehen kann. Stehe nur grade auf dem Schlauch wie man “Home” nur dann den Befehl zuweist wenn es auch aktiv ist…

    Kannst du mir weiterhelfen?

  12. Jared sagt:

    öhm der hat meine Codeansicht zerschossen :(

  13. Micha sagt:

    Probier das mal aus:

    <?php
    if(is_home() && !is_paged()) {
    $myclass = "current_page_item";
    }else{
    $myclass = "page_item";
    }
    ?>
    <li class="<?php echo $myclass; ?>"><a href="http://www.jared2.de" title="Bla">Home</a></li>

  14. Jared sagt:

    super sache! es klappt ganz wunderbar ;-)
    danke dir für die hilfe!

  15. Jared sagt:

    Hm jetzt kommt eine etwas schwierige Frage. Hoffentlich kannst du mir weiterhelfen:

    In der linken Seitennavigation erscheint in der Frutiger Schrift ein Menü und links daneben das Bild. Das Bild würd ich einfach mit nem CSS Befehl hinpacken, nur leider muss die Frutiger Schrift sein! Also muss ich jeden Navigationspunkt einzeln als Bild laden… Am einfachsten wäre es wenn ich es als ul & li Menü mache und die Bilder per Klassen definiere… Aber auch hier geht es nicht so einfach – es sollte die WP intere Funktion sein, da der Nutzer nur WP kennt.

    Hast du einen Tip wie ich das realisieren kann? Ich dachte eventuell an Schlüssel (du hast ja auch schon Tutorial darüber geschrieben) aber so recht fällt mir nix ein. Würd mich freuen wenn du dich melden würdest ;)

  16. Jared sagt:

    Ps: Bin grade auf meiner Suche nach einer Lösung auf diesen Link gestoßen

    http://www.nasendackel.de/2006/12/14/kategoriebild-update/

    Hier benutzt Christopher die ID der Kategorie um ein eigenes Bild “anzuhängen”! Könnte man das eventuell nicht auch mit den Seiten machen?
    Die benutzen ja auch eine eigene ID!?

    Sorry wenn ich jetzt soviel frage ;)

  17. Micha sagt:

    @comment#16: siehe Beitrag

    @comment#17: Solche Geschichten funktionieren nicht, wenn es dynamisch sein soll.

  18. Jared sagt:

    Ok das ist ne klare Aussage! Danke dir :)

  19. Jared sagt:

    Hi du ;)

    Ich bin grade dabei die Navigation einer WP Seite mit deinem Tutorial zu bauen und bin auf ein kleines “Problem” gestoßen. Wenn ich mit dem is_page(xxx) arbeite dann werden auch nur die Seiten in der Navigation angezeigt die unter xxx angelegt werden. Klicke ich dann aber auf eine Seite in der Navigation verschwinden die restlichen. Wie kann es so einstellen das die linke Sidebar Navigation solange bestehen bleibt, solange ich mich unter xxx befinde?

    Hoffentlich konnte ich den Sachverhalt gut genug erklären

  20. Micha sagt:

    @Jared: Ich kann mir nicht so richtig vorstellen, was du da genau treibst. Schreib mal ne ausführliche Mail (siehe Impressum), eventl. mit Link, um die Sache nachzuvollziehen.

  21. Marco S. sagt:

    Hallo,
    hab mir auch eben dein Tut hier durchgelesen. Absolut klasse :) Werd ich empfehlen.

    Was Jared meint ist folgendes (hab das selbe Problem):

    Wenn ich bei mir die ganze Navigation gebaut habe mit den Filterungen (sprich child_of=7), dann werden ja nur diese in der Navigation angezeigt. Klick ich nun aber auf die Entsprechende Seite, dann werden wieder alle Seiten angezeigt in der Sidebar.

    Gibt es da eine Möglichkeit, dass die Unternavigation immer angezeig wird, solange man sich in Dieser befindet?

    Schaus dir doch einfach mal hier an: http://cevi.actra.ch
    da arbeite ich an einer Navigation. Ich habe oben 5 Menüs und dann wird in der Sidebar jeweils die Navigation angezeigt. Klick ich nun auf nen Navipunkt, verschwindet alles (hab ich absichtlich gemacht, damit man sieht was ich mein).

    Gruss

  22. Micha sagt:

    Also ich sehe auf deiner Seite ein korrektes Verhalten. Home hat keine Unterseiten, also werden keine angezeigt. Klickst du auf region, werden die Regionseiten in der Sidebar dargestellt. Ist doch alles Paletti, soweit ich das sehen kann.

  23. Marco S. sagt:

    hehe ja, das ist mittlerweile so :D Ich habs hinbekommen :)
    Das einzige was ich nun noch versuche ist, mehrere verschiedene sidebar-templates zu erstellen. Aber das geht in WP wohl nicht oder?

  24. Micha sagt:

    Klar geht das. Benenne eine andere Sidebar halt sidebar-region.php. Die holst du dann nicht mit get_sidebar(), sondern mit include(TEMPLATEPATH . '/sidebar-region.php);.

  25. Stephan sagt:

    Halleluja!
    Super! Super! Super!
    Bin blutiger Anfänger und habe in den letzten Tagen oft den Mut verloren, aber hier lerne ich ja richtig was.
    Sitze jetzt schon seit Stunden vorm PC, trinke Kaffee (es ist 2.30 Uhr) und arbeite Deine Tipps durch.
    Man weiter so!!!
    Ich bin ja so froh, dass es Leute wie Dich gibt.
    Wenn ich mehr Ahnung von sowas hätte würde ich das bestimmt genauso machen, aber bis dahin dauerts bestimmt noch ne kleine Ewigkeit ;-)

    DANKE!!!

    Viele Grüße
    Stephan Krieger

  26. Micha sagt:

    Danke Stephan!

  27. Patric sagt:

    Ich habe mir mehrere Seitentemplates für unterschiedliche Bereiche einer Seite erstellt. In jedem Template wird eine andere Sidebar eingebunden.

    Der Code hat mir schon sehr viel weitergeholfen.

    Die Kinder der Eltern werden mir in der Sidebar ausgegeben. Doch leider habe ich jetzt ein anderes Problem, auf das ich bisher keine Lösung gefunden habe.

    Ich klicke auf eine Unterseite und die Seite öffnet sich wie sich soll im Contentbereich, doch dann sind auf einmal alle Unterseiten in der Sidebar verschwunden.
    Für die Unterseiten haben ich das passende Template verwendet.

    Ich verwende Wordpress 2.5.1 und PHP 5, bitte um Hilfe!

  28. Micha sagt:

    Patric, ohne den Code zu sehen oder einen Link, kann ich dir auch nicht helfen.

  29. Patric sagt:

    Okay!
    -> Seitentemplate <-

    und

    -> Sidebar Angebote <-
    Angebote

    Einen Link kann ich dir leider nicht geben, da die Seite noch nicht Online ist.
    Wenn du noch etwas brauchst kannst du mir auch eine eMail schreiben.

  30. Patric sagt:

    Warum wird hier der Code beim Senden entfernt!

  31. robotobi sagt:

    Hmm… ich hätte da auch mal ne kleine Frage.

    Ich habe eine horizontale Hauptnavigation aus Pages, und die jeweiligen Submenüs (auch Pages) werden auch korrekt in der Sidebar dargestellt.

    Nun möchte ich flogendes:
    Unter der Hauptnavi “Kontakt” werden in der Sidebar die Pages “Kontaktformular”, “anfahrt” und “impressum” angezeigt – alle nicht angewählt.. ich hätte jedoch gerne das “Kontaktformular” direkt angezeigt wird.

    edit: ähmm… meine matheaufgabe wird als falsch ausgegeben – dabei bin ich mir ziemlich sicher das 4 + 10 = 14 ist ;)

    Gibt es eine Möglichkeit sowas wie if is_page(kontakt) show_page(kontaktformular) zu machen? (wobei klar ist, dass der code so nicht funktioniert.. nur zum verständnis)

    ich hatte überlegt sonst ein eigenes template für kontakt zu erstellen und die sidebar händisch einzutragen.. schöner wär es allerdings mit einer netten kleinen zeile php.

    Bin für jeden Tip sehr dankbar, deine Seite ist wirklich eine hervorragende Anlaufstelle..

    tobi

  32. Micha sagt:

    Ich habe zwar keine Ahnung, wie dein Code aufgebaut ist, aber sowas wie

    if (is_page('kontakt')) {
    include TEMPLATEPATH . '/kontaktformular.php';
    }

    mußte funktionieren.

  33. Jared sagt:

    Das selbe Problem hatte ich letzte Woche auch. Vielleicht ist meine Lösung nicht so toll, aber ich habs mit diesem Code in der header.php gelöst:

    Kann man auch recht simpel erweitern.

    PS: Find es schade das WordPress die Funktion nicht von Haus aus hat.

  34. Micha sagt:

    @Jared, schade, daß dein Code nicht mitgekommen ist. Du mußt den Code erst maskieren.

  35. Jared sagt:

    Ich versuchs nochmal:

    <?php if (is_page('seite')) {
    header("Location: get_option('siteurl')/seite/unterseite/");
    } ?>

    @Micha

    Vielleicht ist dein Code auch WordPresskompatibler. Aber ich hatte ehrlich gesagt keine Lust für jede Weiterleitung ein eigenes Template anzulegen. Zumal das echt lästig werden kann wenn es mal mehr Seiten werden. Da kann man meinen Code (meiner Meinung nach) sehr flexibel erweitern.

  36. robotobi sagt:

    Hmm..

    ich hab das jetzt mal anders gelöst. ich habe ein page template erstellt namens redirect.php

    mit dem inhalt


    ID."&sort_column=menu_order");
    $firstchild = $pagekids[0];
    wp_redirect(get_permalink($firstchild->ID));
    }
    }
    ?>

    das template weise ich dann allen seiten zu, bei denen ich direkt den inhalt des ersten kindes anzeigen will.

    das fubnktioniert super.
    hoffe es hilft wem weiter.

  37. robotobi sagt:

    ähmm.. da fehlt leider die hälfte.

    also: starten mit

    /*
    Template Name: Redirect To First Child
    */

    if (have_posts()) {
    while (have_posts()) {
    the_post();
    $pagekids = get_pages("child_of=".$post->ID."&sort_column=menu_order");
    $firstchild = $pagekids[0];
    wp_redirect(get_permalink($firstchild->ID));
    }
    }

    das ganze dann natürlich noch in den php befehl.

  38. Micha sagt:

    Super. Schöne Lösungen.

    @Jared, es gibt immer viele Wege, Hauptsache, man löst das Problem.

  39. Flip sagt:

    Hi zusammen,

    sehr schöne Lösung mit dem Template!
    Ich würde aber noch eine Abfrage einbauen, ob überhaupt eine Unterseite existiert – sonst leitest du die Seite ins Nirvana :-) Und wenn keine Seite existiert, wird auf die Home geleitet, damit zumindestens keine Fehlermeldung kommt.


    /*
    Template Name: Weiterleitung zum ersten Unterpunkt
    */

    if (have_posts()) {
    while (have_posts()) {
    the_post();
    $pagekids = get_pages("child_of=".$post->ID."&sort_column=menu_order");

    if ($pagekids[0] != "") {
    $firstchild = $pagekids[0];
    wp_redirect(get_permalink($firstchild->ID));
    } else {
    wp_redirect(get_settings('home'));
    }
    }
    }

    Das Ganze natürlich noch in den php-Befehl.

  40. Micha sagt:

    An solche Details sollte man natürlich immer denken. Danke Flip, für den Hinweis.

  41. robotobi sagt:

    Hmm.. ich frage mich ja, ob das wirklich nötig ist. Zumindest wenn nur ich das in meinem Theme benutze, weiß ich doch wann ich was einsetze.
    Sonst generiere ich nur unnötig queries.

    Denke ich jetzt mal.

  42. Micha sagt:

    @robotobi: Das ist kein query, nur eine einfache if Abfrage. Sowas sollte man auf jeden Fall einbauen, auch wenn man es auf den ersten Blick für unnötig erachtet.

  43. Nick sagt:

    Danke für die gute Anleitung.

    Ich habe eine Haupnavi, wenn ich einen Punkt anwähle dann geht auch die 2te Navi auf.
    So weit so gut.

    Wenn ich nun aber in der 2ten Navi einen Punkt anwähle verschwindet die 2te Navi was sie aber nicht soll.

    Hättest du einen kleinen Tipp für mich wie das Problem zu lösen wäre?

    Dank dir!
    Nick

  44. Jared sagt:

    Such mal nach Conditional Tags im WordPress Codex ;-) es gibt da die schönen Befehle “is_page”, “is_single” und “is_home” ;-)

  45. Micha sagt:

    Irgenwie kann ich mich da nicht reindenken, bräuchte mal ein Link.
    Vielleicht liegt es ja an solchen Kleinigkeiten wie Jared meint.

  46. Nick sagt:

    Das ist schon klar.
    Bei mir sieht es so aus:

    nun kann ich aber nicht noch für jede unterseite eine is_page anweisung schreiben…da werde ich ja bekloppt.

    ich versteh das nicht warum es verschwindet wenn ich mich in dem bereich bewege.

    Die obere Navi bleibt doch auch.

  47. Nick sagt:

    mein Code wurde oben rausgenommen..im Kommentar…
    nochmal ein versuch ohne den Code Button:

  48. Nick sagt:

    nee..kann keine code hier einfügen…schade

  49. Micha sagt:

    schick mir das zeugs mal per Mail.

  50. Waldfee sagt:

    Hallo Micha,

    ich bin gerade dabei in meinem Menü eine zweite Ebene zu erstellen, jedoch erweist sich dies als schwierig. Ich besitze keine seperate sidebar.php, sondern habe alles in die index.php eingebastelt. Hier mal ein bisschen Code vom Menü

    damit kann ich nur die erste Eben über Seiten erstellen, wie ist es mir möglich eine zweite Ebene zu erstellen. Muss ich ein zweites einfügen?

    Vielen Dank im vorraus

  51. Waldfee sagt:

    subba er hat den code net genommen, hier nochmal^^

    /div id=”menue”/
    /?php wp_list_pages(‘depth=0′); ?/
    //div/

  52. Hausi sagt:

    Hallo,

    scheinbar kennt sich hier jemand gut aus, perfekt, genau so jemanden suche ich.
    Ich möchte die aktuelle Seite in der Navi hervorheben per CSS, das hast du schön erklärt. Mein problem ist aber, wenn eine Seite angeklickt ist, wird nicht nur diese hervorgehoben sondern auch alle deren Unterseiten. Wie kann man das beheben?!?

  53. danke für diese anschauliche erklärung. ich hab nur noch ein problem:

    wenn ich “oben”/im header einen hauptmenüpunkt anklicke und in der sidebar dann einen der sich öffnenden untermenüpunkte anklicke, dann sind in der sidebar plötzlich die weiteren untermenüpunkte nicht mehr zu sehen. klar, weil die abfrage nicht mehr positiv ist.
    mit viel schreibaufwand könnte man die if-else-abfragen auch noch weiterschreiben, aber das ist nicht wirklich optimal. fällt dir/jemand eine bessere lösung ein?

    danke!
    daniel

  54. anderer daniel sagt:

    habe lösung hier von “doc” gefunden:

  55. Eclipse sagt:

    Danke für den Artikel!

    Gibt es für

    “Ok, noch sind wir nicht am Ende. Mal angenommen, ihr habt euer Hauptmenü mit Home, Blog und Kontakt. Die Seite Kontakt hat die Unterseiten Impressum und Datenschutzerlärung. Ihr wollt aber die Seiten Impressum und Datenschutzerklärung nicht in der Navigationsleiste haben, sondern in der Sidebar und auch nur dann, wenn man auf Kontakt geklickt hat. Hier der Code:

    // in der sidebar.php

    kein Plugin, dass man einsetzen könnte?

  56. Johanna sagt:

    Hallo,

    Ich versuche mir gerade einen Blog auzubauen.
    Mein Wunsch war es neben der Navigation in der oberen Leiste meines Themes die jeweiligen Unterpunkte in der Sidebar anzuzeigen, aber dann nur dann wenn eine Seite mit Unterseiten in der oberen Leiste angewählt wurde. Deine Erklärung/dein Code hat mich schon mal ein ganzes Stück weiter gebracht, vielen Dank!
    Jetzt habe ich aber – vermutlich – das selbe Problem wie Nick weiter oben. Leider konnte ich keine Lösung dafür finden.

    http://classic-angel.de/wordpress/

    Im konkreten Beispiel: Bei Klick auf Seite ‘Amy’ werden die Unterseiten angezeigt, sobald ich aber einen Unterpunkt anwähle, verschwindet das ganze Menü in der Sidebar wieder.

    Hast du eine Idee?

    Johanna

  57. Micha sagt:

    Johanna, schau dir mal das Flexi-pages Widget an.
    http://wordpress.org/extend/plugins/flexi-pages-widget

  58. Johanna sagt:

    Hi Micha,

    Danke für den Tipp, aber es scheint nicht dass zu sein wonach ich suche.

    Im Endeffekt geht es darum, dass es zu jeder Seite quasi eine Abfrage gibt, ob sie Unterseiten hat und falls ja, diese, und nur diese zu zeigen. Deine Lösung kommt diesem Ziel bisher nähsten, allerding habe ich da das Problem, dass wenn ich mich auf einer Unterseite befinde die andere Unterseiten der selben Hauptseite nicht gezeigt werden. Ich hab einfach zuwenig php Ahnung, um da was Funktionierendes draus zu bauen. In welchem Verhältnis stehen eigentlich verschiedene Unterseiten einer Haupseite zu einander? In meiner Logik sind sie ja Geschwister ;) Aber code-technisch? Also wenn man sozusagen irgendwie abfragen könnte, ob der/die/das Parent der aktuellen Unterseite noch andere children hat?

    Ohje.

    Johanna

2 Pingbacks
  1. links for 2007-09-04 | unblogged.hansi.es
  2. Wordpress pages nach id auflisten » Von Nicole Y. Männl » Beitrag » männl.info
Einen Kommentar schreiben