AFAIK显示名称下拉列表中的默认选项设置为用户显示名称的当前值。
所以,如果我们在用户创建集上display_name
“Lastname Firstname”,则这将用作默认值。
这可以通过挂钩来实现user_register
:
add_action(\'user_register\', \'last_name_first\');
function last_name_first( $uid ) {
remove_action(\'user_register\', \'last_name_first\');
$user = new WP_User($uid);
$first = $user->first_name;
$last = $user->last_name;
$full = trim("{$last} {$first}");
if ( ! empty( $full ) ) {
global $wpdb;
$wpdb->update(
$wpdb->users,
array( \'display_name\' => $full ), array( \'ID\' => $uid ),
array(\'%s\'), array(\'%d\')
);
}
然而,这将影响前端、后端、用户列表中显示的名称,在“名称”列下,我们仍然会看到“Firstname Lastname”。
这可以通过使用过滤器“manage\\u users\\u columns”和“manage\\u users\\u custom\\u column”进行更改,以将默认的“name”列替换为显示display_name
字段:
add_filter(\'manage_users_columns\', \'filter_users_colums\', 9999);
function filter_users_colums( $cols ) {
if ( isset($cols[\'name\']) ) {
$old = $cols;
$cb = $old[\'cb\'];
$un = $old[\'username\'];
unset( $old[\'cb\'], $old[\'username\'], $old[\'name\'] );
$cols = array_merge( array(
\'cb\' => $cb,
\'username\' => $un,
\'display_name\' => __( \'Name\' )
), $old);
}
return $cols;
}
add_filter(\'manage_users_custom_column\', \'show_diplay_name_as_name\', 9999, 3);
function show_diplay_name_as_name ( $now, $column_name, $uid) {
if ( $column_name === \'display_name\' ) {
$user = new WP_User($uid);
$now = $user->display_name;
}
return $now;
}