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; ?>
13623500cookie-checkkann ich eine neue WP_Query innerhalb der Schleife ohne Auswirkungen auf die Schleife ausführen? (WordPress)yes