Verschiedene Navigationspunkte auf verschiedenen Seiten

  • Hallo!

    Mein Titel ist wahrscheinlich etwas verwirrend. Und zwar möchte ich mir ein Theme basteln, wo ich eine Navigation habe, die immer gleich bleibt. Sprich, der Aufbau wäre so: Header mit Banner, Navigation, Inhalt, Footer – und nebendran halt die Sidebar.

    Wenn ich nun also auf einen Navigationspunkt gehe, zum Beispiel "Über mich" und die Seite geöffnet wird, sollte dann auf dieser in der Sidebar nun ebenfalls eine Navigation zu sehen sein, die sich auf "Über mich" bezieht, wie "Steckbrief", Hobbies", oder was weiss ich.

    Nun, wenn ich dann den nächsten Navigationspunkt anklicke unter dem Header, zum Beispiel "Fotos", dann soll die Sidebar wiederum die Navigation für diesen Navigationspunkt erstellen, wie die Auflistung der verschiedenen Jahre.

    Ist das überhaupt umsetzbar? Und wenn ja, sehr kompliziert? Habe solch ein Theme bisher noch nie gesehen.

    Liebe Grüsse,
    musikfan

    • 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 marX

    Ah, das können natürlich auch Unterseiten der Seiten sein. Ist ja kein Problem :-D Wie wäre das dann zu bewältigen? Kenne mich nicht soo gut mit PHP aus.

    Danke.

  • wp_list_pages() ist generell für die Ausgabe der WP-Seiten zuständig. In der Doku dazu gibts folgendes Codebeispiel:


    Template Tags/wp list pages WordPress Codex

    Der Code kommt dann an die Stelle in der sidebar.php, wo du die Unterseiten ausgegeben haben möchtest.

  • Hallo marX

    Erstmal Danke für deine Antwort! Wollte das nun gerade machen, nur komme ich nicht draus.

    Meine sidebar-php sieht so aus:

    Nun möchte ich eben dass jede Unterseite in eins der "li's" kommt. Doch verstehe ich nicht, wie ich das PHP genau einfügen muss bei meinem Beispiel, dass es klappt? Und wäre dann noch möglich, dass man solch ein "current" einbaut? Sprich, dass er zeigt, auf welcher Seite man gerade ist?

    Vielen Dank schonmal für deine Hilfe! Oder die eines Anderen.

  • Okay, habe es geschafft. Manchmal sllte man einfach einfach denken :???: Habe den ganzen Code auseinandergenommen, anstatt wirklich alles nur zwischen einem "li" zu tun, argh.

    Ihr seid genial hier in diesem Forum! Danke vielmals an alle, die hier immer so hilfreich sind. Ich wünschte ich könnte ebenfalls helfen, aber ich bin eher in anderen Bereichen besser...

    PS: Noch eine Frage, die ich mir nicht beantworten kann. Und zwar haben manche Seiten keine Unterseiten. Könnte man da nicht die ganze Sidebar weglassen? Bzw. den Kalender zum Beispiel auch nur in meinem "Tagebuch" verwenden? Das müsste sicherlich irgendwie mit dem "if"-Tag gehen, aber da weiss ich nun auch gar nicht, wie die Template Tags dafür sind? Ist das tatsächlich umsetzbar?

    Einmal editiert, zuletzt von musik-fan (19. Januar 2009 um 22:59)

  • Auch wenn du die Lösung schon hast, ich bau's dir nochmal so ein wie du es haben möchtest. Ist ja schon alles da.


    Für weitere Bedingungen kannst du die sog. Conditional Tags verwenden. Die sind hier dokumentiert:
    Conditional Tags WordPress Codex
    Einbauen könntest du die z.B: in der "if $children"-Bedingung.

  • Ist noch lustig, denn ich habe es anders eingefügt. Ich habe den kompletten Code so eingefügt und es klappt:

    Hast du denn auch eine Antwort zu meinem Fettgedruckten? Das ist sicherlich sehr kompliziert... danke für den Link. Schade, gibt es die noch nicht in deutsch?!

  • Hast du denn auch eine Antwort zu meinem Fettgedruckten? Das ist sicherlich sehr kompliziert...


    Der Teil mit den Conditional Tags war meine Antwort. Einzubauen dort, wo ich die Bedingung in meinem Code fett markiert habe. So wie es dort jetzt ist, wird die komplette Sidebar nur ausgegeben, wenn $children (Unterseiten) vorhanden sind. Weiteres kannst du mit den genannten Conditional Tags steuern.

    Zitat

    danke für den Link. Schade, gibt es die noch nicht in deutsch?!


    Nicht das ich wüsste. Zumindest nicht in unserer Doku. Aber die Tags sind doch eigentlich selbsterklärend, selbst mit rudimentären Englisch-Kenntnissen. is_page() prüft z.B. ob du dich auf einer Seite befindest. Ansonsten ist Google dein Freund: ;-)
    Auflistung von Conditional Tags Peruns Weblog

  • Hallo marX

    Du bist ein Schatz! Es funktioniert super! Ich würde das PHP so gern verstehen, aber ich komme nicht draus.

    Ist vielleicht ein wenig zu viel verlangt, aber meinst du, du könntest es mir auch so schreiben, dass der Kalender nur auf den "Kategorien-Seiten" zu sehen ist und sonst nicht?

    Also eine Seite ist "Hallo", da ist nichts, wie es nun auch ist, da es keine Unterseiten hat. Auf "Tagebuch" ist auch nichts – ebenso, keine Unterseiten. Da wäre der Kalender aber genial (nur ob sich das mit dem CSS verträgt?) und auf den restlichen Seiten, wo es Unterseiten gibt, kann der Kalender weg, aber da habe ich dieselben Bedenken, wie oben genannt.

    Puuh, was würde ich geben, das zu verstehen.

  • Ist vielleicht ein wenig zu viel verlangt, aber meinst du, du könntest es mir auch so schreiben, dass der Kalender nur auf den "Kategorien-Seiten" zu sehen ist und sonst nicht?


    Naja, wenn deine Kategorien "echte "Kategoriearchive wären, dann mit is_category(). Aber bei dir wohl eher mit is_page(). Beispiele siehe Codex-Seite.

    PHP
    is_page('42') // 1 Seite per ID
    is_page(array(42, 'about-me', 'About Me And Joe')) // mehrere Seite, mehrere Arten der Identifizierung
  • Also das "Tagebuch" ist das Kategorie-Archiv (Allgemein) und der Rest sind ganz normale Seiten :-D

    Werde grad nochmals tüfteln, bezweifle jedoch, dass es klappt. Vielleicht wäre das Buch "Wordpress für Dummies" was für mich.

  • PHP
    <?php if ( is_category('Kalender') ) : ?>
      // zeige Kalender
    <?php endif; ?>


    Würde dir den Kalender beispielsweise nur im Kategoriearchiv "Kalender" anzeigen. is_page() funktioniert analog für Seiten usw. Ist das wirklich so schwer, oder wo klemmts genau?

  • Ja, irgendwie ist es enorm schwer für mich, weiss auch nicht. Vielleicht denke ich auch zu kompliziert? Ich meine, es gibt eine sidebar.css mit einer css-Sidebar, die ich ja gemacht habe und die soll man so umbasteln mit PHP, dass die jeweisl anders aussieht? Ich nehme dann immer alles auseinander ode habe mal versucht die Sidebar dreimal reinzukopieren und dann irgendwas mit "if" und "else" angegeben, sprich wenn das eine zutrifft kommt die Sidebar bzw. die andere, aber bei mir kommt nie was Gescheites raus. Zudem gibt es so viele Tags und ich nehme öfters die falschen :(

    ABer bei dem PHP-Code, den du mir nun angebenen hast, da muss dann doch nach das andere erscheinen? Sprich zumindest das da:

    Code
    <h3>Navigation:</h3>

    Oder liege ich falsch? Deswegen war meine Idee mit den drei Sidebars.

    Daanke, wiedermal! Werde es am Abend testen.

  • Hallo marX

    Das ist der ganze Code ohne die PHP-Teile, die du erstellt hast und die funktionieren:

    Die beiden PHP-Teile machen schon das, was ich gern hätte, nur sollte:

    1.) der Kalender nur auf der Kalender-Seite erscheinen
    2.) auf Seiten wo es keine Unterseiten hat, nichts erscheinen (passiert bereits)
    3.) auf Seiten, wo es Unterseiten, die Unterseiten erscheinen lassen (passiert bereits, nur ist noch der Kalender zu sehen)

    Ich denke, es wäre einfacher, wenn ich in der Sidebar diese "H3"-Teile weglasse und nur ein Div mache, wo jeweils alles reingeladen werden kann. Gut es müssten eh zwei Definitionen sein, weil der Kalnder ja keine "li"-Elemente braucht, die Navigation aber.

    Nun habe ich gedacht, dass ich auf sidebar.php dreimal den oben geposteten Code rein lade und jedem einzelnen die gewünschte PHP-Funktion zuweise, sprich der 1.) bekommt nur den Kalender ab und wird auf der bestimmten Seite aufgerufen, der 2.) kriegt die Funktion der Unterseiten ab und der 3.) nichts.

    Nur weiss ich nicht, ob das einfacher ist und ob es geht oder ob es echt noch durch Hinzufügen von mehr PHP auf einer einzigen Sidebar verwendet werden kann?

    Leider denke ich viel zu oft zu kompliziert. Bin froh, kann ich mittlerweile CSS bzw. habe das Template so anpassen können, dass es passt, wie ich es gern hätte.

    Liebe Grüsse

    Einmal editiert, zuletzt von musik-fan (23. Januar 2009 um 10:04)


  • So in etwa.

  • Habe es mal ausprobiert, aber nun geht nichts mehr :-D Also schon, jedoch wird der Kalender nirgends mehr angezeigt und die Navigation gibt es immer – je nachdem mit oder ohne Navigationspunkte.

    Ich schicke dir grad mal Screenshots.

Jetzt mitmachen!

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