Zwei Spalten Layout flexibel

  • Guten Tag,

    ich habe noch nicht so viel Erfahrung mit Wordpress, kann aber HTML/CSS fließend.

    Ich will ein flexibles 2-Spalten-Layout, und möchte in der rechten Spalte auf jeder Seite etwas anderes anzeigen lassen.

    Wie manage ich das am Besten?
    Und wie programmiere ich das in Wordpress?

    Sollte ich die rechte Spalte immer als Artikel erstellen und den dann auf den unterschiedlichen Seiten einbinden? Wenn ja, wie binde ich einen Artikel auf einer statischen Seite ein? Ich muss doch für jede Seite dann ein neues Template einstellen oder? Wie muss die .php-Datei dann heißen? Und wie drücke ich es mit Wordpress aus, dass er den Artikel auf der rechten Seite einbindet?

    Ich weiß, dass sind sehr viele Fragen auf einmal, aber ich hoffe ihr versteht was ich meine. Leider finde ich keine guten Seiten, auf denen die Template Tags gut erklärt sind. Und wenn dann ist jede Kleinigkeit erklärt, aber es ist nicht eklärt, wie ich ganz einfach einen Artikel einbinde...

    Zusammenfassend will ich ein 2-Spalten-Layout, jede Seite ist dabei anders, die rechte Spalte passt sich z.B. erscheint auf der Über-Mich-Seite links ein Text und ein Bild, und in der rechten Spalte dann ein Steckbrief.
    Auf der Kontakt-Seite links ein Kontaktformular, und rechts z.B. die ICQ-Nummer und sonstige Messenger-Kontakte. Brauche ich dann für jede Unterseite ein eigenes Template?

    ... Achso, ich nutze Wordpress natürlich als CMS.

    • 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

  • Im Grunde ist das ein Layout mit einem Header (Logo und Navi) und 2 Boxen (li u.re.) Das kannst du mit deinen HTML und CSS-Kenntnissen aufbauen.
    Die Inhalte der Seiten/Artikel werden dann aus der Datenbank ausgelesen, dazu hat jeder Inhalt eine ID die man in einem loop abfragen und somit den Inhalt darstellen kann. Welcher Inhalt dargestellt werden soll hängt dann von der entspr. Seite ab, die man dazu in einer if-Abfrage feststellen kann (PHP-Kenntnisse)
    Templates dazu sind:
    http://doku.wordpress-deutschland.org/Der_Loop
    http://doku.wordpress-deutschland.org/Template_Tags/the_content
    http://doku.wordpress-deutschland.org/Template_Tags/query_posts

  • Vielen Dank erstmal! Die Links hatte ich aber auch schon gefunden :)

    Kann ich theorethisch also auch für die "Über mich"-Seite zwei Seiten erstellen im Backend.

    Einmal "Über mich linke Spalte" und einmal "Über mich rechte Spalte".
    Und dann kann ich das über query_posts einbinden?

    Aber wie muss die Datei dann heißen, die ich im Templateordner erstelle? Wenn ich die "uebermich.php" nenne, kann ich sie dann über http://www.domain.de/uebermich.php aufrufen?

  • Hier hole ich mir z.B. das Impressum per if-Abfrage in der index.php in Abhängigkeit der aufgrufenen Seite in die rechte Spalte.

    Du kannst dir aber auch eine Template-Datei für diese Aufgabe erstellen. Diese wirst du dir dann im Seiteneditor als Template auswählen.

    Beispiel: http://muehltalrestaurant.de/ diese HP besteht nur aus Seiten, alle Elemente werden Backend als Seiten geplegt und in Abhängigkeit der im Menü aufgerufenen Seite angeordnet (CSS).

    Hier habe ich mal beschrieben, wie man sowas auch mit Artikeln lösen kann: http://gsew.de/entwicklungen/…iewtopic&t=20.0

    Einmal editiert, zuletzt von bgeissler (23. April 2011 um 10:55)

  • ... die ganzen Code-Schnipsel sind für mich sehr schwer zu verstehen als Wordpress-Einsteiger.

    Hast du mein Problem verstanden?
    Ich will auf jeder Seite, z.B. auf der Über mich Seite links einen Text und rechts einen Steckbrief. Auf der Kontakt-Seite links ein Kontakt-Formular und rechts eine Leiste mit Messenger-Kontaktdaten. Und so geht das für jede Seite weiter.

    Wie manage ich das am Besten? Mit Seiten oder mit Artikeln?

    Ich würde die strukturierte und schneller ladende Version bevorzugen.

    Ich versteh zum Beispiel gar nicht ob man mit diesem query eine Seite und einen Artikel anzeigen kann oder nur eins von beidem und wie Wordpress das dann ausliest/unterscheidet.
    Ich weiß darüber hinaus nicht wie ich dann die .php-Datei im Template-Ordner benennen muss.

    Wordpress mag sich mir leider nicht öffnen, obwohl das Template schon angepasst ist. Nur die Unterseiten bleiben mir ein Rätsel... Wordpress als CMS ist schwerer als gedacht... Die Doku-Seiten sind leider nicht sehr hilfreich:-(

  • Zitat

    ich habe noch nicht so viel Erfahrung mit Wordpress, kann aber HTML/CSS fließend.
    Ich will ein flexibles 2-Spalten-Layout, und möchte in der rechten Spalte auf jeder Seite etwas anderes anzeigen lassen.
    Wie manage ich das am Besten?
    Und wie programmiere ich das in Wordpress?

    Nach diesem Eingangsstatement bin ich wahrscheinlich von anderen Voraussetzungen ausgegangen. :wink:

    Zitat

    obwohl das Template schon angepasst ist

    Was heißt das? Nutzt du ein fertiges Theme, das du anpassen willst? Oder versuchst du selbst zu programnmieren?

    Zitat

    Hast du mein Problem verstanden?

    Jawoll :grin:
    Deshalb hab ich dir die beiden Beispiele (Artikel oder Seiten) genannt in der Annahme, dass du sie dir mal anschaust.
    Das Problem ist, dass es viele Wege nach Rom gibt. Artikel- und Seiteninhalte sind Posts und haben eine eindeutige ID, dadurch lassen sich alle Inhalte mit der ID identifizieren. Seiten werden als Eltern und Kindseiten geordnet. Artikel werden in Kategorien/Unterkat. geordnet.
    "query" heißt Frage. Damit kann ich etwas abfragen aber nicht anzeigen. Mit the_content(Inhalt) kann ich was anzeigen.

  • Seitentemplate erstellen ohne Sidebar.

    Beispiel Über mich Seite:
    Linken Text schreiben.
    DIV-Container im HTML-Editor einfügen für rechts(<div=id"sidebar">).
    Text für rechts schreiben.
    DIV schließen.

    eventuell CSS anpassen.

    Das Seitentemplate kannst Du auch für andere Seiten, wie Impressum etc verwenden

  • Okey, vielen Dank.

    Derzeit sieht es so aus, dass ich mein eigenes Design an Wordpress angepasst habe. Also das Layout steht in HTML/CSS.

    Der Link "Seitentemplate für Wordpress erstellen" hat mir auf jeden Fall nochmal klar gemacht, wie ich die einzelnen Seiten dann den richtigen Templates zuordne. Danke dafür!

    Das Ziel was ich habe ist allerdings, dass ich auch den Inhalt der rechten Spalte im Backend ändern kann. Mir wäre es klar, wie ich dann einfach in HTML die rechte Spalte schon eingebe, das ist allerdings nicht mein Ziel. Ich will auch die rechte Spalte dann über Wordpress administrieren und ändern können.

    Dafür müsste ich ja, so vermute ich, noch eine Seite im Backend erstellen.

    Ich habe also die Template-Datei page-ueber-mich.php und ordne diese im Backend der Seite "Über mich linke Spalte" im Backend zu. Aber wie kriege ich jetzt die Seite "Über mich rechte Spalte" auch noch in dieses Template.

    Dafür bräuchte ich ja einen Befehl, der mir in page-ueber-mich.php die Seite "Über mich rechte Spalte" ausliest, und einfügt.

    Das wäre der Lösungsansatz, den ich verfolgen würde. Ich weiß aber nicht, ob dies geschickt in Wordpress ist oder ob es bessere Wege gibt.

    Ich müsste für meine Lösung, falls diese geschickt ist, wissen wie ich dann in einer Template-Datei (page-ueber-mich.php) den Inhalt der Seite "Über mich rechte Spalte" aus dem Backend auslesen und einfügen lassen.

    Und genau an dieser Stelle scheitert es, an den Befehlen. Ich bin nämlich noch nicht dahinter gekommen, wieso man den Inhalt einer Seite/eines Artikels abfragen muss bzw. was diese Abfrage bringt, wenn sie eh nichts anzeigt.

    Wenn meine "Über mich rechte Spalte"-Seite die ID 7 hat, ist der Code den ich in die page-ueber-mich.php einfügen muss (in dem div-Container der rechten Spalte) der folgende:

    Wo muss ich den the content Befehl einfügen bzw. welchen? Oder ist es generell schon falsch? Oder würdet ihr eine andere Herangehensweise empfehlen?

    Einmal editiert, zuletzt von tobimo (24. April 2011 um 16:28)

  • Ich habe mir jetzt eine andere Methode überlegt:
    Satt verschiedene Template-Dateien zu erstellen und einem Beitrag zuzuordnen, müsste doch auch folgendes funktionieren - jetzt verstehe ich auch deine Lösung, bgeissler, mit der if-Abfrage.

    Ich könnte doch die page.php so aufbaue, dass rechts eine if-Abfrage gemacht wird, und dann abfrage welche Seite angezeigt wird und mit query_posts den richtigen rechten-Spalten-Inhalt auslesen und anzeigen.

    Dazu habe ich aber ein paar programmier-technische Fragen - Ich orientiere mich an den Angaben hier:http://doku.wordpress-deutschland.org/Template_Tags/query_posts
    z.b. Über mich linke Spalte hat die ID=7, und Über mich rechte Spalte die ID=8
    Kontakt linke Spalte die ID=9, und Kontakt rechte Spalte die ID=10.

    Dann gebe ich doch in der page.php in der rechten Spalte folgenden Code an:


    Stimmt es dann so? Und kann ich auch einfach 2 if-Abfragen aneinander reihen? In der Wordpress-Doku steht, dass man den query_posts einfach vor dem Loop schreibt. Das habe ich gemacht...

  • Zitat

    jetzt verstehe ich auch deine Lösung mit der if-Abfrage.

    :idea:
    Ja, so sollte es laufen. Habe den Code jetzt allerdings nicht geprüft.

    Wie und wo die beiden Seiten angezeigt werden, steuerst du dann mit den DIV-Formatierungen in der Style.css.
    Du kannst mit den if-Abfragen dein ganzes Seitensystem in einer Datei steuern. Du fragst ab, welche Seite gerade geladen wird und lädst die entspr. 2. Seite dazu.

  • Alles klar, vielen Dank! Schuldigung, dass ich das nicht direkt bei deinem Post verstanden hatte, auf den zweiten Blick ist es doch sehr nachvollziehbar :)

    Habe allerdings ein Problem:

    Warum klappt das nicht? Er zeigt mir für die Box dann gar nichts an. kann man nicht zweimal diesen Loop ausüben?

    Einmal editiert, zuletzt von tobimo (24. April 2011 um 22:50)

  • Hier ( http://doku.wordpress-deutschland.org/Der_Loop ) steht,
    der Code für den Loop. Ich dachte, dass man dazwischen nichts einfügen muss.

    Jetzt weiß ich aber, dass man mit the_title() und the_content() arbeiten muss. Vielen Dank für den Hinweis!


    Ich habe ein Problem mit der 404-Seite.

    Dort steht ja

    <p><?php _e( 'Apologies, but the page you requested could not be found. Perhaps searching will help.', 'twentyten' ); ?></p>

    wenn ich dann twentyten umändere in den Namen von meinem Template, und in der language Datei dann die 404-Ausgabe ergänze um die Information, dass die Seite eventuell noch im Aufbau ist, dann übersetzt er mir die Ausgabe nicht mehr. Ich habe die *pot-Datei dann in den Template-Namen umgewandelt, und in der *po-Datei die Übersetzung eingetragen. Mit der *mo-Datei kann ich nichts anfangen, da ich sie nicht richtig auslesen kann.
    Wo ist der Fehler? Was mache ich falsch?

  • Lass die Sprachdateien wie sie sind. Beim nächsten Update von WP sind sie wieder original.
    Ändere einfach den Text im Befehl nach deutsch, der wird dann angezeigt.
    "Apologies, but the page you requested could not be found. Perhaps searching will help." ", 'twentyten'" lässt du stehen.

    Zitat

    <p><?php _e( 'Apologies, but the page you requested could not be found. Perhaps searching will help.', 'twentyten' ); ?></p>


    Beachte: Wenn du Twentyten nutzt, dieses Theme wird beim Updaten überschrieben. Also entweder woanders sichern oder den Ordnernamen und in der style.css den Theme-Namen ändern!

  • Naja, mein Theme ist ja in einem anderen Ordner als twentyten. Das wird ja dann beim Update nicht überschreiben, oder? Es wird doch nur der Ordner twentyten überschreiben. Wenn ich das aber irgendwie anders lokalisiert bekomme, die Sprachdatei, dann müsste es klappen. Ich weiß aber leider nicht wie.

    Daher würde ich das gerne in der Language-Datei ändern, ich verstehe aber nicht wie.

    Deine Lösung würde so aussehen, richtig?

    PHP
    <p>Entschuldigen Sie, die aufgerufene Seite ist derzeit nicht verfügbar.</p>


    Oder muss da irgendwo noch ", 'twentyten'" rein? Was sagt das eigentlich aus? Ist es der Theme-Ordner, in dem gesucht wird?

  • Seitdem ich Permalinks so eingestellt habe, dass ich schöne Links erhalte (ohne die ID, sondern nur mit einem /*wort*), funktioniert meine bisherige Abfrage nicht, die wie folgt ausgesehen hat:

    Wie erstelle ich das nun?

    Also die linke Box hat z.B. die Seiten-ID 48 und die entsprechende rechte Box die Seiten-ID 94.

    Der Permalink von der linken Box ist z.B. "Hauptbox1" und der Permalink von der rechten Box ist z.B. "Nebenbox1".

    Ich hoffe, ihr versteht mein Problem.

    Meine Einschätzung:
    das Abfragen der ID klappt nun nicht mehr, da ich die Permalinks geändert habe.

    Die Abfrage ist übrigens in der "page.php", das sollte ja stimmen.

Jetzt mitmachen!

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