it-swarm.com.de

Anzeigenamen als vollständigen Namen erzwingen

Gibt es eine Möglichkeit, alle Anzeigenamen von Benutzern zu erzwingen, Firstname Lastname zu sein, oder dies alternativ als Standard zu ändern?

3
Svish

Dies wird bei der Benutzerregistrierung festgelegt. Sie können den Wert pro Filter 'user_register' ändern.

Beispielcode, nicht getestet:

/* Plugin Name: First name plus last name as default display name. */
add_action( 'user_register', 'wpse_67444_first_last_display_name' );

function wpse_67444_first_last_display_name( $user_id )
{
    $data = get_userdata( $user_id );
    // check if these data are available in your real code!
    wp_update_user( 
        array (
            'ID' => $user_id, 
            'display_name' => "$data->first_name $data->last_name"
        ) 
    );
}
3
fuxia

Eine bessere Lösung besteht darin, den Anzeigenamen jedes Mal zu aktualisieren, wenn der Benutzer aktualisiert wird. Ich greife auf diesen alten Thread zurück, weil ich diese Lösung nirgendwo finden kann.

/* First name as default display name. */
add_action( 'profile_update', 'set_display_name', 10 );

function set_display_name( $user_id ) {

    $data = get_userdata( $user_id );

    if($data->first_name) {

        remove_action( 'profile_update', 'set_display_name', 10 ); // profile_update is called by wp_update_user, so we need to remove it before call, to avoid infinite recursion
        wp_update_user( 
            array (
                'ID' => $user_id, 
                'display_name' => "$data->first_name"
            ) 
        );
        add_action( 'profile_update', 'set_display_name', 10 );
    }
}
1
Marco Marsala