如何在users.php页面上的用户名下面添加信息?

时间:2016-02-23 作者:j08691

我知道如何向用户添加列。php用户页面manage_users_columnsmanage_users_custom_column, 但我不知道如何修改默认列中显示的信息(例如用户名、姓名、电子邮件等)。

如何添加下图中红色“此处有文本”文本所示的文本?

enter image description here

1 个回复
最合适的回答,由SO网友:birgire 整理而成

中名称列的副本WP_Users_List_Table

我想我们必须删除当前的Name列,并添加我们自己的列。

以下是步骤:

步骤#1

首先,我们添加自己的自定义名称列,然后删除默认名称列。这里我使用前面提到的数组切片技巧here, 要在一次扫描中完成此操作,请执行以下操作:

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

步骤2

然后,我们需要显示相应用户的首名和姓氏,以及额外的“此处的一些文本”消息:

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 );   
第3步,我们只需要调整可排序的列:

add_filter( \'manage_users_sortable_columns\', function( $columns )
{
    $columns[\'mycol\'] = \'name\';
    return $columns;
} );
处理name 排序,这已经得到了公众的支持orderby 查询变量:

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

/wp-admin/users.php?orderby=name&order=desc
希望您可以根据自己的需要进行调整。