如何在管理员中更改名称顺序?

时间:2012-09-28 作者:passatgt

当我转到wp管理员/用户时。php,在第二列中,我可以看到用户的全名,但是,它的顺序不正确。在匈牙利,我们使用不同的名称顺序:http://en.wikipedia.org/wiki/Hungarian_names

所以我需要把名字从“名字-姓氏”改为“姓氏-姓氏”

我该怎么做?

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

您不能更改默认名称列,但可以隐藏它并创建自己的自定义列。

首先,我们添加操作并筛选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,因为在这种情况下,使列可排序的常规方法不起作用。名字/姓氏是用户元,您不能在此用户查询上下文中按用户元排序。

另外,似乎默认名称列也不可排序,单击名称标题与单击用户名标题的操作相同-按用户名排序,因此我想您并没有真正失去任何功能!

结束