webentwicklung-frage-antwort-db.com.de

Stellen Sie "Name öffentlich anzeigen als ..." standardmäßig als Benutzernamen ein

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?

1
CodyBugstein

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);
1
jgraup

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));
    }
}
0
UAU