Ticket #21013: 21013.patch
| File 21013.patch, 2.3 KB (added by SergeyBiryukov, 12 months ago) |
|---|
-
wp-includes/post.php
2849 2849 2850 2850 if ( $post_name_check || in_array( $slug, $feeds ) || apply_filters( 'wp_unique_post_slug_is_bad_attachment_slug', false, $slug ) ) { 2851 2851 $suffix = 2; 2852 $slug = urldecode( $slug ); 2852 2853 do { 2853 $alt_post_name = substr ($slug, 0, 200 - ( strlen( $suffix ) + 1 ) ) . "-$suffix";2854 $alt_post_name = mb_substr( $slug, 0, 200 - ( strlen( $suffix ) + 1 ) ) . "-$suffix"; 2854 2855 $post_name_check = $wpdb->get_var( $wpdb->prepare($check_sql, $alt_post_name, $post_ID ) ); 2855 2856 $suffix++; 2856 2857 } while ( $post_name_check ); 2857 $slug = $alt_post_name;2858 $slug = urlencode( $alt_post_name ); 2858 2859 } 2859 2860 } elseif ( in_array( $post_type, $hierarchical_post_types ) ) { 2860 2861 // Page slugs must be unique within their own trees. Pages are in a separate … … 2864 2865 2865 2866 if ( $post_name_check || in_array( $slug, $feeds ) || preg_match( "@^($wp_rewrite->pagination_base)?\d+$@", $slug ) || apply_filters( 'wp_unique_post_slug_is_bad_hierarchical_slug', false, $slug, $post_type, $post_parent ) ) { 2866 2867 $suffix = 2; 2868 $slug = urldecode( $slug ); 2867 2869 do { 2868 $alt_post_name = substr( $slug, 0, 200 - ( strlen( $suffix ) + 1 ) ) . "-$suffix";2870 $alt_post_name = mb_substr( $slug, 0, 200 - ( strlen( $suffix ) + 1 ) ) . "-$suffix"; 2869 2871 $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $alt_post_name, $post_ID, $post_parent ) ); 2870 2872 $suffix++; 2871 2873 } while ( $post_name_check ); 2872 $slug = $alt_post_name;2874 $slug = urlencode( $alt_post_name ); 2873 2875 } 2874 2876 } else { 2875 2877 // Post slugs must be unique across all posts. … … 2878 2880 2879 2881 if ( $post_name_check || in_array( $slug, $feeds ) || apply_filters( 'wp_unique_post_slug_is_bad_flat_slug', false, $slug, $post_type ) ) { 2880 2882 $suffix = 2; 2883 $slug = urldecode( $slug ); 2881 2884 do { 2882 $alt_post_name = substr( $slug, 0, 200 - ( strlen( $suffix ) + 1 ) ) . "-$suffix";2885 $alt_post_name = mb_substr( $slug, 0, 200 - ( strlen( $suffix ) + 1 ) ) . "-$suffix"; 2883 2886 $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $alt_post_name, $post_type, $post_ID ) ); 2884 2887 $suffix++; 2885 2888 } while ( $post_name_check ); 2886 $slug = $alt_post_name;2889 $slug = urlencode( $alt_post_name ); 2887 2890 } 2888 2891 } 2889 2892