Make WordPress Core

Ticket #39370: 39370.1.diff

File 39370.1.diff, 1.4 KB (added by azaozz, 5 years ago)
  • src/wp-includes/user.php

     
    16171617         */
    16181618        $user_nicename = apply_filters( 'pre_user_nicename', $user_nicename );
    16191619
    1620         $user_nicename_check = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->users WHERE user_nicename = %s AND user_login != %s LIMIT 1", $user_nicename, $user_login ) );
     1620        $user_id = ! empty( $ID ) ? (int) $ID : 0;
    16211621
     1622        $user_nicename_check = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->users WHERE user_nicename = %s AND ID != %d LIMIT 1", $user_nicename, $user_id ) );
     1623
    16221624        if ( $user_nicename_check ) {
    16231625                $suffix = 2;
    16241626                while ( $user_nicename_check ) {
     
    16251627                        // user_nicename allows 50 chars. Subtract one for a hyphen, plus the length of the suffix.
    16261628                        $base_length         = 49 - mb_strlen( $suffix );
    16271629                        $alt_user_nicename   = mb_substr( $user_nicename, 0, $base_length ) . "-$suffix";
    1628                         $user_nicename_check = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->users WHERE user_nicename = %s AND user_login != %s LIMIT 1", $alt_user_nicename, $user_login ) );
     1630                        $user_nicename_check = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->users WHERE user_nicename = %s AND ID != %d LIMIT 1", $alt_user_nicename, $user_id ) );
    16291631                        $suffix++;
    16301632                }
    16311633                $user_nicename = $alt_user_nicename;