My Wordpress iste zeigt derzeit die Identifizierungsinformationen der Benutzer anhand ihres VORNAMENS + NACHNAMENS an.
Die allermeisten bevorzugen es, unter ihren Benutzernamen bekannt zu sein. Ich habe angewiesen, ihren "Anzeigenamen öffentlich als" manuell zu ändern (d. H. Über ihre Benutzereinstellungen), aber dies ist weniger als ideal.
Ich möchte, dass neue Benutzer standardmäßig automatisch nach ihren Benutzernamen angezeigt werden. Beachten Sie, dass dies in mehreren Plugins berücksichtigt werden soll, die auf die Eigenschaft "Name öffentlich anzeigen als" verweisen.
Wie geht das?
Wenn Sie dies für alle zukünftigen Benutzer wünschen, schließen Sie sich an das Ereignis user_register
an und aktualisieren Sie es dort.
Ziehen Sie den WP_User
mit get_userdata
und wp_update_user
info mit dem neuen Anzeigenamen.
add_action( 'user_register', 'wpse_20160110_user_register', 10, 1 );
function wpse_20160110_user_register ( $user_id ) {
// get the user data
$user_info = get_userdata( $user_id );
// pick our default display name
$display_publicly_as = $user_info->user_login;
// update the display name
wp_update_user( array ('ID' => $user_id, 'display_name' => $display_publicly_as));
}
Wenn Sie dies bei jedem Login einstellen möchten, haken Sie wp_login
mit PHP_INT_MAX
ein.
function wpse_20160110_wp_login ( $user_login, $user ) {
wp_update_user(array('ID' => $user->ID, 'display_name' => $user_login));
}
add_action('wp_login', 'wpse_20160110_wp_login', PHP_INT_MAX, 2);
Um den Anzeigenamen sowohl bei der Registrierung als auch bei der Profilaktualisierung programmgesteuert festzulegen und die Endlosschleife von Betty zu vermeiden, müssen Sie prüfen, ob der Anzeigename bereits nach Bedarf festgelegt ist.
add_action( 'user_register', 'set_login_as_displayname' );
add_action( 'profile_update', 'set_login_as_displayname' );
function set_login_as_displayname( $user_id )
{
$data = get_userdata( $user_id );
if ($data->user_login != $data->display_name) {
wp_update_user( array ('ID' => $user_id, 'display_name' => $data->user_login));
}
}