web-dev-qa-db-fra.com

Comment puis-je ajouter des informations sous le nom de l'utilisateur sur la page users.php?

Je sais comment ajouter des colonnes à la page utilisateurs.php avec manage_users_columns et manage_users_custom_column, mais je ne sais pas modifier les informations affichées dans les colonnes par défaut (nom d'utilisateur, nom, email, etc.).

Comment puis-je ajouter du texte comme indiqué par le texte rouge "du texte ici" dans l'image ci-dessous?

enter image description here

3
j08691

Une réplique de la colonne de nom dans WP_Users_List_Table

Je pense que nous devrons supprimer la colonne actuelle Name et ajouter notre propre colonne à la place.

Voici les étapes:

Étape 1

Tout d'abord, nous ajoutons notre propre colonne Nom , puis supprimons la colonne par défaut Nom . Ici, j'utilise le truc de découpage de tableau, mentionné ici , pour le faire en un seul balayage:

add_filter( 'manage_users_columns', function( $columns )
{
    return array_slice( $columns, 0, 2, true ) 
        + [ 'mycol' => __( 'Name' ) ] 
        + array_slice( $columns, 3, null, true );
} );

Étape 2

Ensuite, nous devons afficher d’abord - et nom de famille de l’utilisateur correspondant, avec le caractère supplémentaire ". Du texte ici "message:

add_filter( 'manage_users_custom_column', function( $output, $column_name, $user_id )
{
    if( 'mycol' === $column_name )
    {
        $u = new WP_User( $user_id ); 
        if( $u instanceof \WP_User )
        {
            // Default output
            $output .= "$u->first_name $u->last_name";

            // Extra output
            $output .= "<p>Some text here!</p>";

            // Housecleaning
            unset( $u ); 
        }
    }       
    return $output;
}, 10, 3 );   

Étape 3

Ensuite, il suffit d’ajuster les colonnes triables avec:

add_filter( 'manage_users_sortable_columns', function( $columns )
{
    $columns['mycol'] = 'name';
    return $columns;
} );

pour gérer le tri name, il est déjà pris en charge par la requête publique orderby varaiable:

/wp-admin/users.php?orderby=name&order=asc

et

/wp-admin/users.php?orderby=name&order=desc

J'espère que vous pourrez adapter cela à vos besoins.

5
birgire