更改显示名称的默认顺序

时间:2013-11-22 作者:togethernet

WordPress dashboard为用户提供了选择是将其名称输出为Firstname Lastname还是将Firstname Lastname顺序作为默认值的其他几个选项的机会。

我希望将默认值更改为Lastname Firstname。

有人能建议怎么做吗?

1 个回复
SO网友:gmazzap

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

结束

相关推荐

Changing a username

我的博客上有一小部分用户希望更改他们的用户名。我正在读取数据库中存储的数据,但它在哪里,我如何更改它。