WordPress.org

Make WordPress Core

Ticket #17170: attachments-globally-unique.diff

File attachments-globally-unique.diff, 1.7 KB (added by duck_, 4 years ago)
  • wp-includes/post.php

     
    27962796        } elseif ( in_array( $post_type, $hierarchical_post_types ) ) { 
    27972797                // Page slugs must be unique within their own trees. Pages are in a separate 
    27982798                // namespace than posts so page slugs are allowed to overlap post slugs. 
    2799                 $check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type IN ( '" . implode( "', '", esc_sql( $hierarchical_post_types ) ) . "' ) AND ID != %d AND post_parent = %d LIMIT 1"; 
     2799                $check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type IN ( '" . implode( "', '", esc_sql( $hierarchical_post_types ) ) . "', 'attachment' ) AND ID != %d AND post_parent = %d LIMIT 1"; 
    28002800                $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $slug, $post_ID, $post_parent ) ); 
    28012801 
    28022802                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 ) ) { 
     
    28102810                } 
    28112811        } else { 
    28122812                // Post slugs must be unique across all posts. 
    2813                 $check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type = %s AND ID != %d LIMIT 1"; 
     2813                $check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND (post_type = %s OR post_type = 'attachment') AND ID != %d LIMIT 1"; 
    28142814                $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $slug, $post_type, $post_ID ) ); 
    28152815 
    28162816                if ( $post_name_check || in_array( $slug, $feeds ) || apply_filters( 'wp_unique_post_slug_is_bad_flat_slug', false, $slug, $post_type ) ) {