¿Cómo puedo agregar información debajo del nombre del usuario en la página users.php?

2

Sé cómo agregar columnas a la página users.php users con manage_users_columns y manage_users_custom_column , pero no sé cómo modificar la información que se muestra en las columnas predeterminadas (por ejemplo, nombre de usuario, nombre, correo electrónico, etc.) ).

¿Cómo puedo agregar texto como se muestra en el texto rojo "algo de texto aquí" en la imagen de abajo?

    
pregunta j08691 23.02.2016 - 15:50

1 respuesta

5

Una réplica de la columna de nombre en WP_Users_List_Table

Creo que tendremos que eliminar la columna actual Name y agregar nuestra propia columna.

Aquí están los pasos:

Paso # 1

Primero agregamos nuestra propia columna personalizada Name y luego eliminamos la columna predeterminada Name . Aquí utilizo el truco de división de matrices, mencionado aquí , para hacerlo en un solo barrido:

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

Paso # 2

Luego debemos mostrar el primero- y apellido del usuario correspondiente, junto con el mensaje " algo de texto aquí " adicional:

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

Paso # 3

Entonces solo necesitamos ajustar las columnas clasificables con:

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

para manejar la ordenación name , que ya es compatible con la consulta pública orderby varaiable:

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

y

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

Espero que puedas ajustar esto a tus necesidades.

    
respondido por el birgire 23.02.2016 - 16:52

Lea otras preguntas en las etiquetas