Eigenes 'Letzter Post' Widget erstellen

  • Hallo zusammen,

    Ich bin gerade dabei mein erstes eigenes Widget zu erstellen.
    Bis jetzt hat das auch gut geklappt.

    Es soll in der Navigation (MegaMenu) ein 'Letzer Post' Widget platziert werden, dass mir wirklich nur den letzten Post ausgibt.

    Ich habe den Loop soweit fertig und wollte jetzt den HTML Code einfügen, dass das Widget auch meinen Vorstellungen entspricht.

    Aber plötzlich werden nicht nur ein sondern zwei posts ausgegeben bzw. immer einer mehr wie ich es im Backend im Widget-Bereich eingestellt habe.
    Dieses Phänomen tritt allerdings nur auf, wenn ich HTML Code in den Loop schreibe.
    Wenn ich nur das Featured Image abrufe, dann wird auch nur EIN Bild ausgegeben -.-

    Ich wollte dann mit einer Zwischenabfrage das ganze abfangen, aber das ist ja auch nicht sinn des ganzen.

    PHP
    // Example argument that defines posts per page.
            if ( $instance['howmanyposttosh_number'] > 1 ) {
                $args = array( 'posts_per_page' => $instance['howmanyposttosh_number'] - 1 );
            } else {
                $args = array( 'posts_per_page' => $instance['howmanyposttosh_number'] );
            }


    Ich bin am verzweifeln und sehe vor lauter Bäumen den Wald nicht mehr.

    Hier habe ich mal den Code für euch.

    Ich bin froh um jede Hilfe.

    Danke und einen schönen Abend.
    Gruß Sven

    • 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

  • Sieht eigentlich auf den ersten Blick erstmal nicht verkehrt aus.

    Mach mal einen var_dump von $instance['howmanyposttosh_number']. Am besten am Anfang, bevor du deine if-Anweisung machst.

    Stimmt die Zahl mit der eingegeben bzw. erwarteten Zahl überein? Welchen Datentyp hat die Variable (ich vermute, es ist ein String, erwartet wird eigentlich Int). Falls das nicht schon ein Int ist, versuch mal explizit in Int umzuwandeln.

    Ansonsten: Wird denn genau ein Post ausgegeben, wenn du die 1 hardcodest (also nicht aus dem Instance-Array nimmst)? Oder werden auch dann zwei ausgegeben?

  • Guten Morgen Daniel,

    Danke erstmal für deinen Denkanstoß ;)

    var_dump gibt mit string(1) "1" aus.

    soll ich dass dann so umwandeln?

    Code
    $var = int() $instance['howmanyposttosh_number'];


    und anstelle des $instance den $var in die if Abfrage einsetzen.


    Ich habe auch die 1 als hardcode versucht, aber da ist das gleiche ergebnis.

    Gruß Sven

  • Ich hätte jetzt intval() verwendet.

    Aber wenn die hardgecodete 1 auch zwei Posts zurückliefert, kann das eigentlich nicht die Ursache sein.

    Und er gibt genau 2 Posts aus (obwohl es theoretisch mehr geben würde)? Oder ist zwei Posts = alle Posts?

  • Ich habe über 30 Posts in meiner Liste.
    Wenn ich 1 Post haben will, gibt er mir 2 aus
    Wenn ich 2 haben will, gibt er mir 3 aus....usw.


    Okay dann teste ich deine Vorschläge zuhause mal. Auf der Arbeit ist das gerade schlecht ;)


    Danke und Gruß
    Sven

  • Gibt es "sticky" bzw. "angeheftete" Posts? Siehe [FONT=Courier New]ignore_sticky_posts[/FONT] Parameter.

    Dein o.g. Code überschreibt übrigens die [FONT=Courier New]$args[/FONT] Variable, so dass am Ende [FONT=Courier New]$args['after_widget'][/FONT] nicht mehr existiert.

    Ein Anhaltspunkt wäre auch der Code des in WordPress eingebauten Recent Posts Widgets.

    4 Mal editiert, zuletzt von b3317133 (3. September 2020 um 12:33)

Jetzt mitmachen!

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