2017-07-07 1 views
2

Ich versuche, eine Seiten-ID vor und nach einer Post-Schleife zu erhalten, die Seiten-ID wird korrekt vor der Schleife angezeigt, aber wenn ich es nach der Schleife anzeigen, zeigt es nur die letzte Post-ID der Schleife.WordPress post loop zurücksetzen

Ich habe versucht, alle der folgenden Methoden nach der Schleife und keiner zurückgesetzt zu funktionieren scheint:

Code
wp_reset_postdata() 
wp_reset_query() 
rewind_posts() 

Die Schleife ist:

Ich verwende WP_Query
<?php 

echo 'Shows the page ID (correct)=' . $post->ID; 

$args = array(
'post_type' => 'accommodation', 
'posts_per_page' => '9999', 
); 

$wp_query = new WP_Query($args); 
if ($wp_query->have_posts()) : 
while($wp_query->have_posts()) :  
$wp_query->the_post(); ?> 

<option value="<?php the_ID(); ?>"><?php echo the_title(); ?></option> 

<?php endwhile; 
else : 
esc_html_e('No bookings','sohohotel'); 
endif; 

wp_reset_postdata(); 

echo 'Shows the ID of the last post in the loop (not correct)=' . $post->ID; ?> 

Hinweis und nicht query_posts, also bin ich mir nicht sicher, wo ich falsch liege, irgendwelche Ideen sehr geschätzt!

+0

Und ein einfaches '$ letsStoreThisValueBecauseWeWillNeedItLater = $ post-> ID;' nicht in der Lage sein, Ihr Problem zu lösen ...? – CBroe

+0

können Sie die ID in einer Variablen behalten. SO, Sie können es vor und nach – user2584538

+0

verwenden Danke! Warum habe ich nicht daran gedacht ... manchmal die beste Lösung ist die einfachste –

Antwort

1

Verwendung dieses

$wp_query = new WP_Query($args); 
if ($wp_query->have_posts()) : $wp_query->the_post(); 
while($wp_query->have_posts()) :  
$wp_query->the_post(); ?> 

<option value="<?php the_ID(); ?>"><?php the_title(); ?></option> 

<?php endwhile; ?> 
<?php wp_reset_postdata(); ?> 
<?php else : 
esc_html_e('No bookings','sohohotel'); 
endif; 
+0

Danke, aber macht keinen Unterschied leider –

+0

versuchen Sie die bearbeitete Ans @ TheBobster – Exprator