Changeset 28114
- Timestamp:
- 04/14/2014 08:10:14 AM (11 years ago)
- Location:
- branches/3.8
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3.8
-
branches/3.8/src/wp-admin/includes/post.php
r28073 r28114 412 412 413 413 $updated = $skipped = $locked = array(); 414 $shared_post_data = $post_data; 415 414 416 foreach ( $post_IDs as $post_ID ) { 417 // Start with fresh post data with each iteration. 418 $post_data = $shared_post_data; 419 415 420 $post_type_object = get_post_type_object( get_post_type( $post_ID ) ); 416 421 … … 461 466 $post_data['post_ID'] = $post_ID; 462 467 463 $ translated_post_data = _wp_translate_postdata( true, $post_data );464 if ( is_wp_error( $ translated_post_data ) ) {468 $post_data = _wp_translate_postdata( true, $post_data ); 469 if ( is_wp_error( $post_data ) ) { 465 470 $skipped[] = $post_ID; 466 471 continue; 467 472 } 468 473 469 $updated[] = wp_update_post( $ translated_post_data );474 $updated[] = wp_update_post( $post_data ); 470 475 471 476 if ( isset( $post_data['sticky'] ) && current_user_can( $ptype->cap->edit_others_posts ) ) { -
branches/3.8/tests/phpunit/tests/admin/includesPost.php
r28073 r28114 135 135 $this->assertEquals( 'draft', $updated->post_status ); 136 136 } 137 138 /** 139 * @ticket 27792 140 */ 141 function test_bulk_edit_posts_stomping() { 142 $admin = $this->factory->user->create( array( 'role' => 'administrator' ) ); 143 $users = $this->factory->user->create_many( 2, array( 'role' => 'author' ) ); 144 wp_set_current_user( $admin ); 145 146 $post1 = $this->factory->post->create( array( 147 'post_author' => $users[0], 148 'comment_status' => 'open', 149 'ping_status' => 'open', 150 'post_status' => 'publish', 151 ) ); 152 153 $post2 = $this->factory->post->create( array( 154 'post_author' => $users[1], 155 'comment_status' => 'closed', 156 'ping_status' => 'closed', 157 'post_status' => 'draft', 158 ) ); 159 160 $request = array( 161 'post_type' => 'post', 162 'post_author' => -1, 163 'ping_status' => -1, 164 'comment_status' => -1, 165 '_status' => -1, 166 'post' => array( $post1, $post2 ), 167 ); 168 169 $done = bulk_edit_posts( $request ); 170 171 $post = get_post( $post2 ); 172 173 // Check that the first post's values don't stomp the second post. 174 $this->assertEquals( 'draft', $post->post_status ); 175 $this->assertEquals( $users[1], $post->post_author ); 176 $this->assertEquals( 'closed', $post->comment_status ); 177 $this->assertEquals( 'closed', $post->ping_status ); 178 } 179 137 180 }
Note: See TracChangeset
for help on using the changeset viewer.