WordPress.org

Make WordPress Core

Ticket #11863: conflict.4.patch

File conflict.4.patch, 3.4 KB (added by scribu, 10 years ago)

use sprintf() for translating string

  • wp-includes/post.php

     
    24372437        } elseif ( in_array( $post_type, $hierarchical_post_types ) ) {
    24382438                // Page slugs must be unique within their own trees. Pages are in a separate
    24392439                // namespace than posts so page slugs are allowed to overlap post slugs.
    2440                 $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";
     2440                $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 AND post_status <> 'trash' LIMIT 1";
    24412441                $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $slug, $post_ID, $post_parent ) );
    24422442
    24432443                if ( $post_name_check || in_array( $slug, $feeds ) || preg_match( '@^(page)?\d+$@', $slug ) ) {
     
    24512451                }
    24522452        } else {
    24532453                // Post slugs must be unique across all posts.
    2454                 $check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type = %s AND ID != %d LIMIT 1";
     2454                $check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type = %s AND ID != %d AND post_status <> 'trash' LIMIT 1";
    24552455                $post_name_check = $wpdb->get_var( $wpdb->prepare( $check_sql, $slug, $post_type, $post_ID ) );
    24562456
    24572457                if ( $post_name_check || in_array( $slug, $feeds ) ) {
  • wp-admin/post.php

     
    220220        if ( !current_user_can($post_type_object->delete_cap, $post_id) )
    221221                wp_die( __('You are not allowed to move this item to the Trash.') );
    222222
    223         if ( ! wp_trash_post($post_id) )
     223        if ( !wp_trash_post($post_id) )
    224224                wp_die( __('Error in moving to Trash.') );
    225225
    226226        wp_redirect( add_query_arg( array('trashed' => 1, 'ids' => $post_id), $sendback ) );
     
    233233        if ( !current_user_can($post_type_object->delete_cap, $post_id) )
    234234                wp_die( __('You are not allowed to move this item out of the Trash.') );
    235235
    236         if ( ! wp_untrash_post($post_id) )
     236        $orig_permalink = get_permalink($post_id);
     237
     238        if ( !wp_untrash_post($post_id) )
    237239                wp_die( __('Error in restoring from Trash.') );
    238240
    239         wp_redirect( add_query_arg('untrashed', 1, $sendback) );
     241        if ( $orig_permalink != get_permalink($post_id) )
     242                 $permalink_conflict = $post_id;
     243
     244        wp_redirect( add_query_arg(array('untrashed' => 1, 'conflict' => $permalink_conflict), $sendback) );
    240245        exit();
    241246        break;
    242247
  • wp-admin/edit.php

     
    205205
    206206if ( isset($_GET['untrashed']) && (int) $_GET['untrashed'] ) {
    207207        printf( _n( 'Item restored from the Trash.', '%s items restored from the Trash.', $_GET['untrashed'] ), number_format_i18n( $_GET['untrashed'] ) );
     208        if ( isset($_GET['conflict']) && (int) $_GET['conflict']) {
     209                echo ' ' . sprintf(__("There was a permalink conflict with the restored post. It's permalink was updated to: %s"), '<a href="' . esc_url( get_permalink( $_GET['conflict'] ) ). '">' .get_permalink( $_GET['conflict'] ).'</a>');
     210        }
    208211        unset($_GET['undeleted']);
    209212}
    210213