您不能更改默认名称列,但可以隐藏它并创建自己的自定义列。
首先,我们添加操作并筛选admin_init
这将添加和管理我们的新专栏:
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\' );
接下来,连接到上面的过滤器的函数将删除默认名称列并添加我们自己的自定义列:
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;
}
最后,连接到第一步中的操作的函数为每个用户输出列的值:
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;
}
这里缺少的一点是列不可排序。虽然我知道可能的方法是通过
pre_user_query
行动似乎必须直接修改SQL,因为在这种情况下,使列可排序的常规方法不起作用。名字/姓氏是用户元,您不能在此用户查询上下文中按用户元排序。
另外,似乎默认名称列也不可排序,单击名称标题与单击用户名标题的操作相同-按用户名排序,因此我想您并没有真正失去任何功能!