kann ich eine neue WP_Query innerhalb der Schleife ohne Auswirkungen auf die Schleife ausführen? (WordPress)

Lesezeit: 2 Minuten

Die Balgfunktion funktioniert einwandfrei, aber ich muss sie innerhalb der Schleife ausführen. In diesem Fall wird der Inhalt des Beitrags tatsächlich aus dem letzten Beitrag meiner WP_Query übernommen. Nicht von dem, der erscheinen sollte.

Gibt es eine Möglichkeit, meine Abfrage auszuführen und zu verlassen Der Loop bleibt unberührt?

function recent_post_by_author() {
  echo '<div class="recent_post_by_author">';
  $my_query = new WP_Query('author_name=Radek&showposts=2');
  while ($my_query->have_posts()) : $my_query->the_post(); ?>
  <a href="https://stackoverflow.com/questions/2842679/<?php the_permalink() ?>" title="<?php the_title(); ?>"> <?php the_title(); ?></a><BR>
  <?php endwhile;
  echo '</div>';
}

Die Lösung dafür ist anzurufen wp_reset_postdata nachdem Sie Ihre separate WP_Query-Instanz durchlaufen haben.

Das Problem tritt auf, weil WordPress eine global $post Variable, die bei jedem Aufruf von gesetzt wird the_post() wird an jedem WP_Query-Objekt vorgenommen. Wenn Sie es von Ihrer 2-Posts-from-Radek-Abfrage aufrufen, verliert es den Überblick über das ursprüngliche WP_Query-Objekt.

Fehlen Ihnen einige öffnende und schließende PHP-Tags, wenn Sie die neue Abfrage in die Funktion einschließen? Dies funktioniert als eigenständige neue Abfrageschleife, die innerhalb der Haupt-WP-Schleife mehrmals verwendet werden kann:

<?php $my_query = new WP_Query('author_name=Radek&showposts=2'); ?>
<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
<a href="https://stackoverflow.com/questions/2842679/<?php the_permalink() ?>" title="<?php the_title(); ?>">
<?php the_title(); ?></a>
<?php endwhile; ?>

  • Warum verwenden Sie die neue Abfrage in einer Funktion? Müssen Sie das tun?

    – markratledge

    17. Mai 2010 um 13:43 Uhr

  • Sind Sie sicher, dass es meine bereits laufende Schleife nicht beeinflusst? Wenn ja, dann habe ich Glück, denn ich muss das tun.

    – Aayush

    22. August 2010 um 11:56 Uhr

  • Das wird das Problem, das er hat, nicht lösen – $my_query->the_post(); modifiziert das Globale $post -Variable, die an seine neue Abfrage angehängt bleibt.

    – Nate Cook

    25. Februar 2012 um 7:50 Uhr

  • Danke Nate, das sollte eine Antwort sein, kein Kommentar 🙂

    – akmur

    16. Februar 2014 um 21:13 Uhr

1362350cookie-checkkann ich eine neue WP_Query innerhalb der Schleife ohne Auswirkungen auf die Schleife ausführen? (WordPress)

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

Privacy policy