Ticket #12002: 12002.3.diff
File 12002.3.diff, 1.3 KB (added by , 11 years ago) |
---|
-
src/wp-admin/includes/ms.php
616 616 add_action( 'network_admin_notices', 'site_admin_notice' ); 617 617 618 618 function avoid_blog_page_permalink_collision( $data, $postarr ) { 619 if ( is_subdomain_install() )619 if ( is_subdomain_install() || ! is_main_site() || empty( $data['post_name'] ) ) { 620 620 return $data; 621 if ( $data['post_type'] != 'page' ) 621 } 622 623 $blog_prefix = apply_filters( 'ms_blog_prefix', '/blog' ); 624 625 if ( ! empty( $blog_prefix ) ) { 622 626 return $data; 623 if ( !isset( $data['post_name'] ) || $data['post_name'] == '' ) 627 } 628 629 // Ignore it if the post type is not public 630 if ( ! in_array( $data['post_type'], get_post_types( array( 'public' => true ) ) ) ) { 624 631 return $data; 625 if ( !is_main_site() ) 626 return $data; 632 } 627 633 628 634 $post_name = $data['post_name']; 629 635 $c = 0; 630 while ( $c < 10 && get_id_from_blogname( $post_name ) ) {636 while ( $c < 10 && get_id_from_blogname( $post_name ) ) { 631 637 $post_name .= mt_rand( 1, 10 ); 632 638 $c ++; 633 639 } 640 634 641 if ( $post_name != $data['post_name'] ) { 635 642 $data['post_name'] = $post_name; 636 643 } 644 637 645 return $data; 638 646 } 639 647 add_filter( 'wp_insert_post_data', 'avoid_blog_page_permalink_collision', 10, 2 );