Zählerproblem, Endlosschleife, wenn post_per_page gleich X ist

(aktualisiert)

Ich verwende diese Abfrage, um divs in meinen Titelseiten-Schieberegler zu loopen. Ich benutze Counter um 4 Posts in einen Slider zu teilen, öffne dann einen neuen Slider etc. Außerdem einen Counter, um eine class auf jeden vierten Post zu setzen (um den Rand zu fixieren). Das hat gut funktioniert, bis ich das Argument ‘post_per_page’ verwenden wollte. Wenn ich es auf -1 oder etwas, das durch 4 teilbar ist, setze, bekomme ich eine Endlosschleife, die in allen Posts ad infinitum läuft.

Damit. Es ist ziemlich klar, dass mein Problem mit den Zählern zu tun hat. Ich bin selbst kein Programmierer und habe diesen Code aus verschiedenen Quellen und mit Hilfe des allmächtigen Internets zusammengetragen.

So sieht meine vollständige Abfrage aus:

    'fastighet', 'posts_per_page' => -1, 'orderby' => 'ASC' ); ?> have_posts() ) : ?>
  • have_posts()) : $query->the_post(); $c++; if( $c == 4) { $style = 'thumbnail-fourth'; $c = 0; } else $style=''; ?> <div class="fastighet-thumbnail " id="post-">
    <a href="https://wordpress.stackexchange.com/questions/45526/counter-problem-infinite-loop-when-post-per-page-equals-x/"> ''.get_the_title().'', 'title' => ''.get_the_title().'' )); ?>
    <a href="https://wordpress.stackexchange.com/questions/45526/counter-problem-infinite-loop-when-post-per-page-equals-x/">
have_posts() ) { ?>
  • Kann irgendjemand sehen, was damit nicht stimmt? Wie könnte ich es ändern, damit ich “posts_per_page” so verwenden kann, wie ich es sollte?

    Solutions Collecting From Web of "Zählerproblem, Endlosschleife, wenn post_per_page gleich X ist"

    Entfernen Sie die Zeile $posts = get_posts($args) ; Wird nicht benötigt, wenn Sie danach eine WP_Query aufrufen.

    Das ist alt, aber ich werde die Antwort sowieso für zukünftige Besucher hinzufügen

    Das Problem ist, dass $query->have_posts() auch alle Posts $query->have_posts() und zurücksetzt, wenn keine Posts mehr existieren. Wenn diese function innerhalb der while-Schleife als if-Bedingung aufgerufen wird, setzt sie die Posts zurück, und wenn sie erneut in while-Bedingung aufgerufen wird, startet sie die Schleife erneut von Anfang an.

    Um dieses Problem zu lösen, verwenden Sie $query->current_post + 1 != $query->post_count innerhalb Ihrer if-Bedingung