Sorry, I have tried to mess around with this in a bunch of different ways but just can’t get it to work. I’m sure it’s something so simple that I am overlooking. The problem is that in this page template I am using the get_field() function to retrieve a post object. Once I do what I need to do with the post’s data, I try to reset the post object to the current post. As far as I know, I am following the instructions as found on the website, but it is not resetting the post data. Here is the code:
<!--Headline--> <div id="headline" class="home"> <?php $post_object = get_field( 'home_testimonial', 90 ); //Retrieves the Testimonial Page content if( $post_object ): $post = $post_object; setup_postdata( $post ); ?> <div id="headline-content"> <h2>What Our Clients are Saying</h2> <p>"<?php the_field( 'blurb' ); ?>" - <span class="customer-name"> <?php the_field('name'); ?></span> <span class="customer-location"><?php the_field('location'); ?></span> </p> </div> <a href="<?php echo home_url( '/testimonials.php' ); ?>" class="headline-readmore"></a> <?php wp_reset_postdata(); //why is this not working??? ?> <?php endif; ?> </div> <!-- /headline --> <!-- Page --> <div id="page"> <div id="main-content" class="home" > <h2><?php the_title(); the_field( 'home_headline' ); //should be getting data from current post, but it's not ?></h2> </div><!-- /main-content -->
When I execute print_r( $post ) after wp_reset_postdata(), it is still giving me values from the old post data. Again, I’m betting it’s an easy fix. Hopefully I’m right
Can you confirm that the template above is loaded for a $post?
Is this template a page.php, page template, or single.php?
The fact that you use a post_id param of
90 to load the post value, makes me think that there is no global $post object to start with…
I just ran into the same issue as truheart. However, I utilized WP_Query in my loop to call my custom post type. My code is similar to:
$args = array( 'post_type' => 'customposttype' ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post();
In this case, I found the way to reset the post data was to run:
$loop->reset_postdata(); instead of
wp_reset_postdata(); (due to the fact I have no global $post object defined).
The topic ‘Post Object not resetting with wp_reset_postdata()’ is closed to new replies.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
© 2023 Advanced Custom Fields.