WordPress-Schleife: Abrufen der aktuellen Beitragsanzahl in The Loop

Lesezeit: 2 Minuten

Benutzer-Avatar
Kartik Rao

Wenn ich mich in The Loop befinde, möchte ich die aktuelle Beitragsanzahl abrufen.

Ich möchte zum Beispiel nach jeweils 3 Beiträgen eine Anzeige schalten.

Wie erhalte ich also den Wert der Schleifenanzahl?

Benutzer-Avatar
Der tote Sanitäter

Du kannst den … benutzen current_post Mitglied von WP_Query Objektinstanz, um die aktuelle Post-Iteration zu erhalten;

while ( have_posts() ) : the_post();

    // your normal post code

    if ( ( $wp_query->current_post + 1 ) % 3 === 0 ) {

        // your ad code here

    }

endwhile;

Beachten Sie, dass Sie globalisieren müssen, wenn Sie dies innerhalb einer Funktion verwenden $wp_query.

  • Ich habe diese Methode ausprobiert. Die Anzeige wird vor und nach jeweils 3 Beiträgen geschaltet! Wie bekomme ich es hin, dass die Anzeige erst nach 3 Posts eingefügt wird.

    – Kartik Rao

    22. Juli 2010 um 12:21 Uhr

  • @KartikRao Für die Zukunft ist diese Antwort so leicht fehlerhaft. Da Indizes bei 0 beginnen, wird die Bedingung beim ersten Ausführen (der ersten Iteration der While-Schleife) tatsächlich zurückgegeben true weil 0 modulus jede reelle Zahl immer 0 ist. Der Anzeigencode wird vor Ihrem ersten Post, vierten Post, siebten Post usw. falsch eingefügt. Aktualisierter Code sollte lauten: ($wp_query->current_post + 1) % 3.

    – Adam McArthur

    17. Mai 2015 um 14:08 Uhr


  • @AdamMcArthur das Einfügen des Anzeigencodes vor dem vierten und siebten Post ist Korrekt Angesichts der Fragebeschreibung, die besagt, dass Anzeigen eingefügt werden sollen “nach jeweils 3 Beiträgen”. Sie haben Recht, dass das Einfügen einer Anzeige vor dem ersten Post nicht der Spezifikation entspricht, aber Ihre vorgeschlagene Lösung – die Anzeigen nach dem 2./5./8. Post anstelle des 3./6./9. Post einfügen würde, wie angefordert – stimmt nicht entweder.

    – Mark Amery

    17. Mai 2015 um 14:38 Uhr


Warum nicht eine Variable erhöhen und dann Ihre Anzeigen bei Bedarf anzeigen?

while(LOOP)
    echo $i%3==0 ? $ad : '';
    $i++

Unsicher warum, aber die vorgeschlagenen Methoden haben bei mir nicht funktioniert, ich musste auf Folgendes zurückgreifen

$loop_counter = 1;
while( $query->have_posts() )
{
    //Do your thing $query->the_post(); etc

    $loop_counter++;
}

Sicherer als mit Globals zu spielen, wenn Sie mich fragen.

1383910cookie-checkWordPress-Schleife: Abrufen der aktuellen Beitragsanzahl in The Loop

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy