Ersten Post in full width anzeigen lassen

  • Hallo,

    ich bin gerade dabei mir ein eigenes Theme zu schreiben und möchte gerne den ersten post, der über die Schleife in der index.php ausgegeben wird, anders als die anderen posts ausgeben. Das heißt ich würde diesen gerne in full width ausgeben, wie man es von Nachrichtenportalen kennt. Mir ist nur nicht ganz klar, wie man das umsetzen kann?

    In der Schleife auf den ersten post prüfen geht bei mir nicht weil ich über <li> Elemente iteriere die bekanntlich child eines <ul> ausserhalb der Schleife sind.

    LG

    • 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

  • Gib dem ersten <li> eine enspr. CSS-Klasse oder iteriere anders oder sammle die <li> Ausgaben in einer Variable und gib erst am Ende bei Bedarf die <ul> und die Variable aus.

    Es gibt viele Möglichkeiten, kommt ganz auf Deinen restlichen Theme-Code an.


  • In der Schleife auf den ersten post prüfen geht bei mir nicht weil ich über <li> Elemente iteriere die bekanntlich child eines <ul> ausserhalb der Schleife sind.

    Irgendwie ist mir nicht ganz klar, was du damit meinst.

    Aber unabhängig vom Markup kannst du doch einfach mit einer "counter"-Variable arbeiten, die du einfach bei jedem Durchlauf um 1 erhöhst. Dann kannst du doch relativ einfach gegenprüfen, an welcher Stelle du dich befindest.

  • @danielgoehr Wahrscheinlich wird derzeit sowas in der Art genutzt:


    Ohne den restlichen Theme-Code kann man aber nur schwer helfen, vermutlich soll der erste Post ausserhalb der <ul> erscheinen o.ä., aber das wird uns @Hipster123 schon noch mitteilen...

    Es gibt die unterschiedlichsten Lösungen, und es warten vermutlich auch noch viele Problemchen, z.B. bei Berücksichtigung von Pagination (was passiert auf Seite 2, 3, ...), Nutzung der index.php als Fallback von anderen Stellen im Theme, usw.

    Evtl. gestaltet man für die Anforderung "Nachrichtenportal" alternativ die Startseite auch über Widgetbereiche und eigene Widgets, das MH Magazine lite Theme bietet da ein entspr. Konzept zum Rein-/Abgucken, dann kann man später auch leicht andere Elemente unterbringen usw., alles eine Frage der Einstiegstiefe in die Welt der WordPress Themes.

    7 Mal editiert, zuletzt von b3317133 (28. Juni 2019 um 17:06)

  • Wenn ich den Ansatz von Raphael verfolge dann stößt man auf das Problem das der erste post nicht nur auf der ersten Seite angezeigt wird sonder auch auf allen anderen. Dann müsste ich prüfen ob ich auf der ersten Seite bin usw... erscheint mir unsauber?

    Ich hab andere Komponenten auf der Seite, was bedeutet ich muss es auf zweimal ausgeben.

  • Das würde ihn ja ansich erstmal nicht davon abhalten, dem ersten Post eine andere oder zusätzliche Klasse zu geben und darüber dann anders zu stylen.

    Es sei denn, es ging darum, dass der erste Post nicht Teil der gleichen ul sein soll. Dann würde ich in dem Fall auch einfach zu zwei Loops tendieren, wie @Raphael in Beitrag #4 vorgeschlagen hat.

  • Im o.g. Codebeispiel für index.php ist kein eigenes Query und kein Offset. Um auf der ersten Seite dem ersten <li> eine eigene Klasse zu geben, könnte man das so anpassen, aber es gibt wie gesagt viele und auch elegantere Lösungen, kommt ganz auf Dein restliches Theme & Layout & Einstiegstiefe an.

  • Bei mir sieht das momentan so aus:

  • Dokumentation query_posts:

    Zitat

    Note: This function will completely override the main query and isn’t intended for use by plugins or themes. Its overly-simplistic approach to modifying the main query can be problematic and should be avoided wherever possible. ... More Information ...For general post queries, use WP_Query or get_posts(). ...

  • Das eine hat mit dem anderen nichts zu tun, lies erstmal die verlinkte Dokumentation im Detail durch und als generellen Ansatz evtl. den ergänzten Link zur Anforderung "Nachrichtenportal" in #6.

  • Note: This function will completely override the main query and isn’t intended for use by plugins or themes.

    Ja, das steht dort, das kann ihc jetzt nicht leugnen. aber wozu ist es dann gut, wenn es weder in Themes noch Plugins genutzt werden soll? Das entführt jetzt etwas den Thread, aber andererseits wäre es auch hilfreich mal diese Frage zu klären.

  • Lies den Rest der verlinkten Dokumentation.

    Du kannst auch ein eigenes $wpdb SQL Query schreiben, bleibt Dir natürlich selbst überlassen, oder Du nutzt WordPress einfach so wie es gedacht ist.

    In einer index.php eines Themes hat query_posts nichts verloren, soviel dazu.

  • Ja bin gerade dabei mich in das angegebene Theme einzuarbeiten aber irgendwie krieg ich das nicht so hin wie ich mir das vorstelle.

    EDIT: Anscheinend ist der Top Artikel in dem MH Theme nur in der Premium version verfügbar.

  • Schau Dir mal in der Theme Dokumentation den Teil How & where to place widgets on your website? usw. an.

    Eine statische Seite als Startseite setzen, das Template "Startseite" einstellen und dann "MH Posts Large" oder "MH Slider" mit 1 als Anzahl im "Home 1" Bereich ergibt eine volle Breite oben.

    Und wenn Du das Theme dann verstanden hast, schau Dir an wie es programmiert ist, baue evtl. eine eigene ähnliche Struktur nach, mit Deinen Bedürfnissen. Wir haben das Theme schon oft bei Kunden verwendet, hier und da auch in der Lite Version, und einfach durch eigene Widgets ergänzt. Es ist gerade was eine variable Startseite angeht, eine sehr gute Basis.

    8 Mal editiert, zuletzt von b3317133 (28. Juni 2019 um 18:36)

  • Ich muss ehrlich gestehen ich Blick da nicht ganz durch, vielleicht kann mir jemand ein bisschen helfen? Für mich sieht es so aus als müsst ich mein ganzes Theme neu bauen?

    Ich versteh nicht wo die widgets ausgegeben werden und ist die page.php oder index.php dafür verantwortlich? Müsste doch eigentlich die page.php sein, da es statisch ist oder?

    Einmal editiert, zuletzt von Hipster123 (28. Juni 2019 um 21:11)

Jetzt mitmachen!

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