web-dev-qa-db-fra.com

Comment puis-je changer l'ordre des noms dans l'administrateur?

Lorsque je vais sur wp-admin/users.php, dans la deuxième colonne, je peux voir le nom complet de l'utilisateur, mais ce n'est pas dans le bon ordre. En Hongrie, nous utilisons un ordre de nom différent: http://en.wikipedia.org/wiki/Hungarian_names

Donc, je dois changer le nom de "Prénom - Nom" en "Nom - Prénom"

Comment puis-je faire ceci?

1
passatgt

Vous ne pouvez pas modifier la colonne Nom par défaut, mais vous pouvez simplement la masquer et créer votre propre colonne personnalisée.

Tout d'abord, nous ajoutons l'action et le filtre sur admin_init qui ajouteront et géreront notre nouvelle colonne:

function wpa66544_user_custom_column_init(){
    add_filter( 'manage_users_columns', 'wpa66544_user_add_column' );    
    add_action( 'manage_users_custom_column', 'wpa66544_user_manage_column', 100, 3 );
}
add_action( 'admin_init', 'wpa66544_user_custom_column_init' );

Ensuite, la fonction rattachée à notre filtre ci-dessus, qui supprime la colonne de nom par défaut et ajoute notre propre colonne personnalisée:

function wpa66544_user_add_column( $columns ) {
    // hide the default name column
    unset( $columns['name'] );

    // add our custom name column
    $columns['custom_name']  = 'Name';        
    return $columns;
}

Enfin, la fonction liée à l’action dans la première étape qui fournit la valeur de la colonne à chaque utilisateur:

function wpa66544_user_manage_column( $val, $column_name, $user_id ) {
    $last_first = '';
    if ( 'custom_name' == $column_name ):
        $first_name = get_the_author_meta( 'first_name', $user_id );
        $last_name = get_the_author_meta( 'last_name', $user_id );
        $last_first = $last_name . ' ' . $first_name;
    endif;
    return $last_first;
}

La seule chose qui manque ici, c'est que la colonne n'est pas triable. Je n'ai pas encore compris comment faire cela, même si je sais que la méthode possible consiste à utiliser l'action pre_user_query. Il semble que le code SQL doit être modifié directement, car le moyen habituel de rendre une colonne triable ne fonctionne pas dans cet exemple. prénom/nom sont méta utilisateur, et vous ne pouvez pas commander par méta utilisateur dans ce contexte d'une requête utilisateur.

Il semble également que la colonne Nom par défaut ne soit pas non plus triable de toute façon. Un clic sur l'en-tête Nom a le même effet qu'un clic sur l'en-tête du nom d'utilisateur - le tri par nom d'utilisateur, donc je suppose que vous ne perdez aucune fonctionnalité ici!

1
Milo