2. 6 ユーザー一覧のカスタマイズ

 ユーザー一覧に次の項目を表示します。
   ・部署・氏名
   ・ID
   ・user_nicename、ニックネーム、ブログ上の表示名
   ・HTML編集可否
 氏名は、姓名で表示します。
 メールアドレスは、スペースの関係で非表示です。
 user_nicename、ニックネーム、ブログ上の表示名は、閲覧画面に表示されます。これらは、デフォルトでは、ログイン名になります。ログイン名が、閲覧画面に表示されるのは危険です。セキュリティーの観点から、user_nicename、ニックネーム、ブログ上の表示名がログイン名になっていないか確認できます。
 部署、HTML編集可否は、ユーザー新規追加とユーザーの編集を別途カスタマイズして入力します。
 処理は、表示項目設定、ソート属性設定、表示の順で行います。

コード

// --------------------------------
// ユーザー一覧 表示項目設定
//   氏名、ID、user_nicename、ニックネーム、ブログ上の表示名、HTML可否
// --------------------------------
function hk_functions_manage_users_columns( $users_columns ) {
    $new_users_columns = array();
    foreach ( $users_columns as $id => $name ) {
        if ( $id == 'name' ) {
            $new_users_columns['hk_functions_name'] = '部署<br />氏名';
            $new_users_columns['hk_functions_id']   = 'ID';
            $new_users_columns['hk_functions_nickname']   = 'user_nicename<br />ニックネーム<br />ブログ上の表示名';
            $new_users_columns['hk_functions_html']   = 'HTML';
        }
        else if ( $id == 'email' )        continue;
        else
            $new_users_columns[ $id ] = $name;
    }
    unset( $id );
    unset( $name );
    return $new_users_columns;
}
add_filter( 'manage_users_columns', 'hk_functions_manage_users_columns' );

// --------------------------------
// ユーザー一覧 ソート属性設定
// --------------------------------
function hk_functions_manage_users_sortable_columns( $sortable_columns ) {
    $sortable_columns['hk_functions_id']   = 'ID';
    return $sortable_columns;
}
add_filter( 'manage_users_sortable_columns', 'hk_functions_manage_users_sortable_columns' );

// --------------------------------
// ユーザー一覧 表示
//   氏名、ID、user_nicename、ニックネーム、ブログ上の表示名、HTML可否
// --------------------------------
function hk_functions_manage_users_custom_column( $output, $column_name, $user_id ) {
    $user_obj = get_userdata( $user_id );
    // 部署・氏名
    if ( $column_name == 'hk_functions_name' ) {
        $section = get_user_meta( $user_id, 'hk_section', true );
        $section = htmlspecialchars( $section );
        $name    = $user_obj->last_name.' '.$user_obj->first_name;
        if ( $section != '' )
                $output = $section.'<br />'.$name;
        else    $output = $name;
    }
    // ID
    else if ( $column_name == 'hk_functions_id' )
        $output = $user_id;
    // ニックネーム、ブログ上の表示名
    else if ( $column_name == 'hk_functions_nickname' ) {
        $user_nicename = htmlspecialchars( $user_obj->user_nicename );
        $nickname      = htmlspecialchars( $user_obj->nickname );
        $display_name  = htmlspecialchars( $user_obj->display_name );
        $output = $user_nicename.'<br />'.$nickname.'<br />'.$display_name;
    }
    // HTML
    else if ( $column_name == 'hk_functions_html' ) {
        $can_html = get_user_meta( $user_id, 'hk_can_html', true );
        if ( $can_html == 'yes' )   $output = '○';
        else                        $output = '×';
    }
    return $output;
}
add_filter( 'manage_users_custom_column', 'hk_functions_manage_users_custom_column', 10, 3 );

 このプログラムをお使いになる場合は、お使いになる方の自己責任でお願いします。

更新日:2016/03/21
掲載日:2015/11/10