Ändern Sie den Autor Slug von Spitzname zu ID

Ich habe die Standardregistrierungsoption geändert, indem ich Personen die Möglichkeit gebe, sich mit ihren E-Mail-Adressen anzumelden. Sie haben auch die Möglichkeit, ihren Vornamen, Nachnamen hinzuzufügen, aber es ist nicht erforderlich.

// Allow email instead of nickname for login add_filter('authenticate', function($user, $email, $password){ //Check for empty fields if(empty($email) || empty ($password)){ //create new error object and add errors to it. $error = new WP_Error(); if(empty($email)){ //No email $error->add('empty_username', __('Viga: Unustasid sisestada e-posti aadressi')); } else if(!filter_var($email, FILTER_VALIDATE_EMAIL)){ //Invalid Email $error->add('invalid_username', __('Viga: E-posti aadress on vale.')); } if(empty($password)){ //No password $error->add('empty_password', __('Viga: Unustasid sisestada parooli')); } return $error; } //Check if user exists in WordPress database $user = get_user_by('email', $email); //bad email if(!$user){ $error = new WP_Error(); $error->add('invalid', __('Viga: E-posti aadress või parool ei ole õige.')); return $error; } else{ //check password if(!wp_check_password($password, $user->user_pass, $user->ID)){ //bad password $error = new WP_Error(); $error->add('invalid', __('Viga: E-posti aadress või parool ei ole õige.')); return $error; }else{ return $user; //passed } } }, 20, 3); 

Aber das wirft ein Problem auf. Auf der Autorenseite werden die E-Mail-Adressen der Benutzer veröffentlicht:

 http://example.com/author/email-address/ 

Ich weiß, wie man den / author / Teil der URL ändert:

 add_action('init', 'cng_author_base'); function cng_author_base() { global $wp_rewrite; $author_slug = 'autor'; // change slug name $wp_rewrite->author_base = $author_slug; } 

aber nicht wie ändert man den Benutzernamen, um die ID des Autors anzuzeigen. Kann es gemacht werden?

Solutions Collecting From Web of "Ändern Sie den Autor Slug von Spitzname zu ID"

Überrascht, dass dies so lange unbeantwortet bleibt. Das ist mit einem einfachen Code-Block ziemlich einfach zu machen:

 function set_my_nice_name() { global $wpdb; $user_table = $wpdb->prefix . 'users'; $wpdb->query("UPDATE $user_table SET `user_nicename`=`ID`"); } add_action('init', 'set_my_nice_name'); 

Dies funktioniert, weil der sichtbare Teil eines Autoren-Slugs (oder Profil-Slugs in BuddyPress) die Spalte user_nicename in der users-Tabelle verwendet und dies die Benutzer-ID für alle Benutzer in der user_nicename in user_nicename Spalte kopiert.