Support

Account

Home Forums Front-end Issues Nested Post Object Fields Reply To: Nested Post Object Fields

  • I think it is possible to nest setup_postdata() while also avoiding multiple calls to wp_reset_postdata(). This can be achieved by storing the post object that you want to revert to in a variable, and later running setup_postdata() on it.

    Untested code to demonstrate:

    // Inside the main loop.
    
    // Setup outer post object.
    // Store it in $outer_post_object so that we can revert to it later.
    $outer_post_object = get_field('my_field');
    $post = $outer_post_object; // override $post
    setup_postdata($post);
    
    // Later on, setup an inner post object
    $inner_post_object = get_field('my_sub_field');
    $post = $inner_post_object; // override $post
    setup_postdata($post);
    
    // Later on, when you want to revert to $outer_post_object
    // Instead of wp_reset_postdata(), do this:
    $post = $outer_post_object;
    setup_postdata($post);

    Using this technique you can have as many nested setup_postdata() as you like.