Changeset 25601
- Timestamp:
- 09/24/2013 03:52:41 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/query.php
r25312 r25601 109 109 /** 110 110 * After looping through a separate query, this function restores 111 * the $post global to the current post in the main query 111 * the $post global to the current post in the main query. 112 112 * 113 113 * @since 3.0.0 … … 116 116 function wp_reset_postdata() { 117 117 global $wp_query; 118 if ( !empty($wp_query->post) ) { 119 $GLOBALS['post'] = $wp_query->post; 120 setup_postdata($wp_query->post); 121 } 118 $wp_query->reset_postdata(); 122 119 } 123 120 … … 3629 3626 return $wp_the_query === $this; 3630 3627 } 3628 3629 /** 3630 * After looping through a nested query, this function 3631 * restores the $post global to the current post in this query. 3632 * 3633 * @since 3.7.0 3634 * 3635 * @return bool 3636 */ 3637 function reset_postdata() { 3638 if ( ! empty( $this->post ) ) { 3639 $GLOBALS['post'] = $this->post; 3640 setup_postdata( $this->post ); 3641 } 3642 } 3631 3643 } 3632 3644 -
trunk/tests/phpunit/tests/query.php
r25002 r25601 58 58 } 59 59 } 60 61 /** 62 * @ticket 24785 63 * 64 */ 65 function test_nested_loop_reset_postdata() { 66 $post_id = $this->factory->post->create(); 67 $nested_post_id = $this->factory->post->create(); 68 69 $first_query = new WP_Query( array( 'post__in' => array( $post_id ) ) ); 70 while ( $first_query->have_posts() ) { $first_query->the_post(); 71 $second_query = new WP_Query( array( 'post__in' => array( $nested_post_id ) ) ); 72 while ( $second_query->have_posts() ) { 73 $second_query->the_post(); 74 $this->assertEquals( get_the_ID(), $nested_post_id ); 75 } 76 $first_query->reset_postdata(); 77 $this->assertEquals( get_the_ID(), $post_id ); 78 } 79 80 } 60 81 }
Note: See TracChangeset
for help on using the changeset viewer.