1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

aufbau der Stratseite (index)

Dieses Thema im Forum "Design" wurde erstellt von Muckel, 17. Mai 2010.

  1. Muckel

    Muckel Well-Known Member

    Registriert seit:
    27. Februar 2006
    Beiträge:
    461
    Zustimmungen:
    0
    Guten Abend zusammen,

    brauche ein wenig Hilfe bei dem Aufbau meiner Startseite. Gerne hätte ich dort als erstes einen "festen Bereich", dessen Text ich über das Admin Menü auch jeder Zeit verändern kann. Da bietet sich zum Beispiel die Funktion "Seite als Startseite" an.

    Darunter wäre es schön, wenn die neusten Artikel auftauchen. Jene nach X Worten abgeschnitten. Es wäre dabei sinnvoll, dass kein Artikel doppelt auftaucht, aber trotzdem alle Kategorien berücksichtigt werden. Gerne hätte ich das auch in zwei Spalten.

    Der statische Aufbau sollte dann diesem Beispiel entsprechen. Das Layout als solches habe ich schon angefangen umzusetzten, wie man in meinem Blog sehen kann.

    Die Frage ist nun nur, wie ich mir diesen Aufbau der Startseite realisieren kann. Wenn ich die Funktion "Seite als Startseite" nutze, so könnte ich dort den festen Inhalt ganz normal über das Backend schreiben. Über eine Template Datei könnte ich dann eine Übersicht der Artikel erzeugen.

    Soweit müsste es doch klappen oder? Doch wie kann ich es machen, dass jeder zweite Artikel eine andere Class bekommt? Denn die "Spalten" habe ich durch gefloatete DIVs erzeugt. So habe ich die Möglichkeit, dass sich jene nämlich auch bei kleinen Auflösungen noch sichtbar bleiben usw. Daher habe ich für den ersten Artikel .bl (für box links) und für den zweiten .br (für box rechts), der dritte dann wieder .bl, der vierte .br usw.

    Habt ihr eine Idee, wie ich das umsetzten kann?

    Liebe Grüße
    Muckel/Tobias
     
  2. Ammaletu

    Ammaletu Well-Known Member
    Ehrenmitglied

    Registriert seit:
    14. Juli 2007
    Beiträge:
    4.696
    Zustimmungen:
    0
    Also eine statische Seite als Startseite zu verwenden war schon mal die richtige Idee, denke ich. Dieser gibst Du dann auch gleich mal ein Seitentemplate, z.B. die page.php als Kopie. Dann hast Du erstmal die Ausgabe des Seiteninhaltes und kannst den Rest darunter im Template ergänzen.


    Das machst Du ganz einfach über eine Zählervariable. In etwa so:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Update: Es geht auch vielleicht etwas lesbarer als Boolean-Variable:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  3. hero-master

    hero-master Well-Known Member

    Registriert seit:
    8. Juni 2007
    Beiträge:
    332
    Zustimmungen:
    0
    Jap :)
    Du musst doch gar nicht mit float left und right arbeiten. Eine float-Definition reicht doch :)
    Hab ich bei mir auch so gemacht ohne extra Klassen zu definieren.

    Beim Floaten werden ja die Objekte umflossen und wenn kein Platz mehr ist umgebrochen (wie bei Text eben). Dies kannst du bei dir ausnutzen:
    Gib allen Artikeln ein float:left und eine Breite, so dass beide nebeneinander passen (width: 50% z.B.) ;)
     
  4. Muckel

    Muckel Well-Known Member

    Registriert seit:
    27. Februar 2006
    Beiträge:
    461
    Zustimmungen:
    0
    Hallo zusammen,

    danke für eure Tipps! Habe nun begonnen eine Template Datei für die "Startseite" zu erstellen. Habe mich damit auch an der page.php orientiert und es klappt. Habe darunter dann im Moment noch als reines html eine Ausgabe geschrieben, an dessen Stelle dann die Artikel auftauchen sollen. Den "Stand der Dinge" kann man in meinem Blog begutachten.

    Habe mir dann auch die index.php und weitere Dateien angeschaut. Doch mir ist leider noch nicht klar, wie ich die Artikel aufrufen kann. In den Dateien wird der Inhalt ja durch
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    aufgerufen. Doch das steht sowohl in der index.php wie auch in den anderen Dateien.

    Habt ihr da vielleicht auch 'ne Lösung oder einen Ansatz?

    Liebe Grüße
    Muckel
     
  5. Muckel

    Muckel Well-Known Member

    Registriert seit:
    27. Februar 2006
    Beiträge:
    461
    Zustimmungen:
    0
    Guten Abend,

    habe versucht es mit dem Inhalt der archiv Datei zu versuchen. Doch das Ergebnis war leider nur, dass die "Seite" nochmal angezeigt wurde...

    LG
    Muckel
     
  6. Ammaletu

    Ammaletu Well-Known Member
    Ehrenmitglied

    Registriert seit:
    14. Juli 2007
    Beiträge:
    4.696
    Zustimmungen:
    0
    Du musst vor den zweiten Loop eine eigene Query setzen, wenn möglich ohne die Originalquery zu überschreiben.

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  7. Muckel

    Muckel Well-Known Member

    Registriert seit:
    27. Februar 2006
    Beiträge:
    461
    Zustimmungen:
    0
    Danke Dir, werde das morgen ausprobieren.

    LG und vielen Dank
    Muckel
     
  8. Muckel

    Muckel Well-Known Member

    Registriert seit:
    27. Februar 2006
    Beiträge:
    461
    Zustimmungen:
    0
    Hallo zusammen,

    habe das heute nun endlich ausprobiert (vorher ging es wg Krankenhaus aufenthalte leider nicht), aber irgendwie scheint es falsch zu sein, da ich folgende Meldung bekomme:
    Mein Versuch schaut so aus, da ich am Anfang den normalen Aufbau habe. Nach dem
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    hatte ich dann einen Test via html, wo dann diese Übersicht erscheinen sollte, was auch geklappt hatte. An dessen Stelle habe ich dann den Tipp mit dem neuen Loop ausprobiert:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Doch dabei habe ich ja die oben gepostete Fehlermeldung bekommen.

    Kann mir jemand sagen, wo mein Fehler liegt?
    Vielen Dank
    Muckel
     
  9. Muckel

    Muckel Well-Known Member

    Registriert seit:
    27. Februar 2006
    Beiträge:
    461
    Zustimmungen:
    0
    Hallo nochmal,

    in der englischen Erklärung ist ein Beispiel, für eigene Loops zu finden. Daraus habe ich folgendes Versucht:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Doch leider wird da kein Titel ausgegeben. Nun steht in der "Anleitung" bei dem Multiple Loops folgendes unter dem einen Beispiel:
    Heißt das nun, dass ich die Tags wie
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    garnicht nutzen kann?

    Eine Fehlermeldung gibt es nun nicht mehr, wie man hier sehen kann. Wäre sehr gut, wenn ihr mir helfen könnt.

    Liebe Grüße
    Muckel
     
  10. Muckel

    Muckel Well-Known Member

    Registriert seit:
    27. Februar 2006
    Beiträge:
    461
    Zustimmungen:
    0
    Fehler gefunden, aber keine Lösung

    Habe nun einen Fehler gefunden: wenn man bei dem Beispiel eine Kategorie angibt, dann funktioniert es, aber eben nur für diese eine Kategorie:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Wie man sehen kann, gibt dass nun die Artikel als Übersicht in einer Liste aus.

    Doch damit kann ich meinen Wunsch nicht umsetzten. Wie man hier sieht, möchte ich

    • von jeder Kategorie
    • den neusten Artikel haben
    • und dabei aber keine doppelt ausgeben.
    Doch wie kann ich das nun umsetzten, wenn man bei einem eigenen Query die Kategorie angeben muss? Denn wenn ich dann mal eine neue Kategorie anlege, müsste ich ja auch die Template-Datei editieren, was ungeschickt wäre.

    Hoffe daher sehr, dass ihr mir helfen könnt.
    Liebe Grüße
    Muckel
     
  11. bgeissler

    bgeissler Well-Known Member

    Registriert seit:
    6. August 2006
    Beiträge:
    4.404
    Zustimmungen:
    0
    Ich arbeite in dem Fall mit include:

    lege eine neue Datei an z.B. tipps.php

    Parameter anpassen, cat=0 zeigt alle Kats
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Dann füge in der index.php oder page.php den neuen Code ein:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
    #11 bgeissler, 6. August 2010
    Zuletzt bearbeitet: 6. August 2010
  12. Muckel

    Muckel Well-Known Member

    Registriert seit:
    27. Februar 2006
    Beiträge:
    461
    Zustimmungen:
    0
    Hallo,

    du hast mir schon mal weiter geholfen. Mit cat=0 werden alle Artikel angezeigt, auch in der "Lösung" von mir.

    Habe halt die start.php erstellt. Habe dann im Admin Menü eine Seite angelegt, die auch etwas inhalt hat und die Datei als Template nutzt. Dadurch wird unter dem Inhalt aus dem Admin Menü nun die Titel der Artikel ausgegeben.

    Nun muss ich es "nur" noch machen, dass ich den Inhalt dazu einfüge, abgekürzt und dann die einzelnen Artikel floate, damit ich das Ziel erreiche, wie ich es im statischen Aufbau habe.

    Vielen Dank
    Muckel
     
  13. Muckel

    Muckel Well-Known Member

    Registriert seit:
    27. Februar 2006
    Beiträge:
    461
    Zustimmungen:
    0
    Die Lösung ist fast da

    Hallo zusammen,

    habe es nun fast hin bekommen, wie man hier sehen kann. Unter der im Admin-Bereich angelegten Seite habe ich die Template Datei ausgewählt. Durch jene wird unter dem selbst geschriebenen Inhalt nun auch die Artikel ausgegeben. Der Quellcode dafür sieht so aus:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Den "Übersichts Artikeln" habe ich durch the_excerpt nur den Anfang gezeigt, wie ich es auch wollte. Das DIV des Artikel hat eine Class, die links gefloatet ist:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Doch wie man sehen kann, sind leider nicht alle neben einander. In meiner "statischen Vorlage" habe ich das anders gelöst: erster Artikel links gefloatet, den zweiten rechts, den dritten links, den vierten rechts, den fünften links und so weiter.

    Nun ist aber die Frage, wie man das nun lösen kann. Hier im Thread gab es zwei Tipps dazu. Der eine meinte, dass man nur einen float bräuchte, was ja aber leider nicht so klappt, da die Höhe der "Blöcke" unterschiedlich ist. Der zweite Tipp war, dass man mit einem Counter arbeitet - doch wie kann ich den Code so umstellen, dass das funktioniert?
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Und ein letztes Problem bleibt noch. Es werden nun ja die neusten 10 Artikel angezeigt. Doch eigentlich wollte ich es etwas anders haben: und zwar so, dass aus jeder Kategorie der neuste Artikel angezeigt wird. Ist ein Artikel aber in mehreren Kategorien, so soll er nur einmal aufgeführt werden. Aber das ist wohl nur sehr schwer möglich, oder?
     
  14. Ammaletu

    Ammaletu Well-Known Member
    Ehrenmitglied

    Registriert seit:
    14. Juli 2007
    Beiträge:
    4.696
    Zustimmungen:
    0
    Wenn die Blöcke eine verschiedene Höhen haben (aber eine festgelegte Weite mit Vorkehrungen für zu breite Inhalte), ist ein Counter wahrscheinlich am einfachsten. Einfach eine Variable über der Schleife definieren ($my_count = 0;), am Schleifenende erhöhen ($my_count++;) und danach prüfen, ob ein Umbruch erfolgen soll:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Damit können dann alle Blöcke links gefloatet werden und nach 5 Blöcken wird eine neue Zeile angefangen.


    Ich würde sagen, mache erst mal die Ansicht an sich fertig. Dann kannst Du sie auf die Kategorien umstellen. Hatte ich dazu schon Code gepostet?

    Auf meiner Seite habe ich das so gelöst: Array mit IDs von Kategorien angelegt, darüber iteriert und jeweils den neuesten Artikel ausgelesen und dargestellt. Bei mir untereinander, aber geht ja genauso gut mit mehreren Boxen nebeneinander. Bei mir kommt es allerdings nicht vor, dass ein Artikel in mehreren Top-Level-Kategorien enthalten ist.

    Du solltest zum einen überlegen, ob das Sinn macht, dass ein Artikel in zwei Kategorien ist. Falls ja, könnte man z.B. ein Array mit den IDs der gefundenen Artikel anlegen und dann zuerst schauen, ob der Artikel da schon enthalten ist. Falls ja, wird ein neuer Artikel gesucht (offset-Parameter an der Query?). Ansonsten wird die ID an das Array angehängt.

    Edit: Hier erst mal die Lösung für die Ausgabe der Beiträge pro Kategorie. Ich gebe immer 5 Beiträge aus, aber nur beim ersten den Teaser. Beachte dass im Code einige Funktionen aus meiner functions.php verwendet werden (alles mit "dor_" davor).

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
    #14 Ammaletu, 6. August 2010
    Zuletzt bearbeitet: 6. August 2010
  15. alchymyth

    alchymyth Well-Known Member

    Registriert seit:
    7. Juni 2009
    Beiträge:
    3.959
    Zustimmungen:
    1
    ist jedenfalls etwas aufwendiger:

    dazu hat query_posts auch einen parameter:

    'post__not_in' => array(6,2,8) - exclusion, lets you specify the post IDs NOT to retrieve

    http://codex.wordpress.org/Function_Reference/query_posts#Post_.26_Page_Parameters

    ich wuerde das so machen:
    im loop einen array der schon gezeigten post IDs aufbauen;
    und den array mit dem obigen parameter in der query verwenden.

    ein aehnliches beispiel, diesen array aufzubauen, gibt's in:
    http://codex.wordpress.org/The_Loop#Multiple_Loops_Example_3_-_Plugins

    besonders nach dieser ueberschrift:
     
  16. Muckel

    Muckel Well-Known Member

    Registriert seit:
    27. Februar 2006
    Beiträge:
    461
    Zustimmungen:
    0
    Fast alles gelöst :)

    Hallo zusammen,

    habe es mit einem Counter nun hinbekommen, dass wie in meinem statischen Beispiel einmal die Class bl und einmal br verwendet wird. Jene sind im Grunde gleich, nur das die eine links und die zweite rechts gefloatet ist. Der PHP-Teil für den Counter schaut so aus und funktioniert auch:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Der CSS-Teil schaut so aus:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Doch leider ist es noch so, dass es trotzdem nicht wirklich klappt. Es ist nun fast alles so, wie im statischen Beispiel, nur die Länge der Artikel ist im Blog unterschiedlich, wodurch wahrscheinlich die Probleme kommen.

    Um das zu lösen habe ich eine zweite Variable angelegt und gebe nach jedem zweiten Artikel ein
    HTML:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    aus. Die entsprechenden Zeilen schauen so aus:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    So weit bin ich mit dem Aufbau nun zu frieden, wie man in meinem Blog sehen kann.

    Nun habe ich nur noch das Problem, das eben chronologisch die neusten Artikel angezeigt werden. ich wollte es eigentlich anders haben und aus jeder vorhandenen Kategorie den neusten Artikel anzeigen lassen. Dabei sollte es aber so sein, dass ein Artikel der in mehreren Kategorien ist, nur einmal auftaucht.

    Es wurde schon gefragt, ob es Sinn macht, dass manche Artikel in mehreren Kategorien auftaucht - dem kann ich nur sagen ja. So habe ich zum Beispiel Artikel in denen ich über eine Reise geschrieben habe und in dem auch die Fotos sind. Somit ist der Artikel unter Fotos einsortiert, aber auch unter Fahrten (Reisen). Bei anderen Artikeln ist es ähnlich.

    Kennt jemand eine Lösung für das letzte Problem? Meine derzeitige Lösung schaut so aus:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Vielen vielen Dank für eure Hilfe bis hierhin.

    Liebe Grüße
    Muckel
     
  17. Muckel

    Muckel Well-Known Member

    Registriert seit:
    27. Februar 2006
    Beiträge:
    461
    Zustimmungen:
    0
    Valid?

    Hallo zusammen,

    habe das eben auch getestet, ob das alles CSS und XHTML Valid ist. Bei CSS funktioniert alles, doch bei xhtml bekomme ich diese Fehlermeldung:
    Kann mir jemand sagen, was das bedeutet und woran es liegen kann?


    Vielen Dank
    Muckel
     
  18. bgeissler

    bgeissler Well-Known Member

    Registriert seit:
    6. August 2006
    Beiträge:
    4.404
    Zustimmungen:
    0
    Umlaut oder "?" im Quelltext?
     
  19. Muckel

    Muckel Well-Known Member

    Registriert seit:
    27. Februar 2006
    Beiträge:
    461
    Zustimmungen:
    0
    Hallo,

    komisch - weiß nicht, wieso da nicht mehr "ss" anstelle von "ß" stand...vielleicht lag es am Wechsel von Programmen oder so, ich weiß es nicht.

    Gibt aber noch zwei xhtml Fehler. Der erste bezieht sich auf das role atribut der Suche. Finde das nur leider in den Dateien meines Layouts nicht... Jemand eine Idee?

    Der zweite Fehler bezieht sich auf ein Plugin, mit dem man googlemaps einbinden kann:
    HTML:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Das befindet sich noch im body der Seite und der Validator sagt aus, dass das Atribut dort nicht erlaubt ist. Der Link führt zu der Seite des PlugIns. Gesamt steht der Code vor dem schließenden Body:
    HTML:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Wird das zwingend gebraucht? Hätte gern ein valides Blog...
     
  20. bgeissler

    bgeissler Well-Known Member

    Registriert seit:
    6. August 2006
    Beiträge:
    4.404
    Zustimmungen:
    0
    Ich baue google-maps als iframe in die Seite:
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden