Changeset 30346
- Timestamp:
- 11/14/2014 09:33:50 PM (10 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/includes/post.php
r30202 r30346 178 178 */ 179 179 function edit_post( $post_data = null ) { 180 global $wpdb; 180 181 181 182 if ( empty($post_data) ) … … 318 319 update_post_meta( $post_ID, '_edit_last', get_current_user_id() ); 319 320 320 wp_update_post( $post_data ); 321 $success = wp_update_post( $post_data ); 322 // If the save failed, see if we can sanity check the main fields and try again 323 if ( ! $success && is_callable( array( $wpdb, 'strip_invalid_text_for_column' ) ) ) { 324 $fields = array( 'post_title', 'post_content', 'post_excerpt' ); 325 326 foreach( $fields as $field ) { 327 if ( isset( $post_data[ $field ] ) ) { 328 $post_data[ $field ] = $wpdb->strip_invalid_text_for_column( $wpdb->posts, $field, $post_data[ $field ] ); 329 } 330 } 331 332 wp_update_post( $post_data ); 333 } 321 334 322 335 // Now that we have an ID we can fix any attachment anchor hrefs -
trunk/tests/phpunit/tests/post.php
r30158 r30346 1017 1017 _unregister_post_type( 'post-type-2' ); 1018 1018 } 1019 1020 /** 1021 * @ticket 21212 1022 */ 1023 function test_utf8mb3_post_saves_with_emoji() { 1024 global $wpdb; 1025 $_wpdb = new wpdb_exposed_methods_for_testing(); 1026 1027 if ( 'utf8' !== $_wpdb->get_col_charset( $wpdb->posts, 'post_title' ) ) { 1028 $this->markTestSkipped( 'This test is only useful with the utf8 character set' ); 1029 } 1030 1031 require_once( ABSPATH . '/wp-admin/includes/post.php' ); 1032 1033 $post_id = $this->factory->post->create(); 1034 1035 $data = array( 1036 'post_ID' => $post_id, 1037 'post_title' => "foo\xf0\x9f\x98\x88bar", 1038 'post_content' => "foo\xf0\x9f\x98\x8ebaz", 1039 'post_excerpt' => "foo\xf0\x9f\x98\x90bat" 1040 ); 1041 1042 $expected = array( 1043 'post_title' => "foobar", 1044 'post_content' => "foobaz", 1045 'post_excerpt' => "foobat" 1046 ); 1047 1048 edit_post( $data ); 1049 1050 $post = get_post( $post_id ); 1051 1052 foreach( $expected as $field => $value ) { 1053 $this->assertEquals( $post->$field, $value ); 1054 } 1055 } 1019 1056 }
Note: See TracChangeset
for help on using the changeset viewer.