web-dev-qa-db-fra.com

Forcer le nom d'affichage en tant que nom complet

Existe-t-il un moyen de forcer tous les noms d'affichage des utilisateurs à être Firstname Lastname ou de remplacer ce nom par défaut?

3
Svish

Ceci est défini lors de l'enregistrement de l'utilisateur. Vous pouvez modifier la valeur par filtre 'user_register'.

Exemple de code, non testé:

/* 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

Une meilleure solution consiste à mettre à jour le nom d'affichage chaque fois que l'utilisateur est mis à jour. Je recourt à ce vieux fil parce que je ne peux trouver cette solution nulle part.

/* 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