管理画面のユーザー編集、ユーザー一覧などで名前を姓名の順にする
WordPressの標準では、ユーザーの名前は「名」「姓」の順になっています。
(ユーザー編集)
(ユーザー一覧)
この順番を姓名の形にする(名姓の逆にする)には、下記のように設定を行います。
ユーザー編集(ユーザー新規追加、プロフィール含む)で項目を姓名の順にする
プラグインなしで設定する場合は、functions.phpに下記のように記載します。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
/** * ユーザー編集(ユーザー新規追加、プロフィール含む)の名姓の項目を姓名の順にします。 */ function lastfirst_name() { ?><script> jQuery(function($){ $('#last_name').closest('tr').after($('#first_name').closest('tr')); }); </script><?php } add_action( 'admin_footer-user-new.php', 'lastfirst_name' ); add_action( 'admin_footer-user-edit.php', 'lastfirst_name' ); add_action( 'admin_footer-profile.php', 'lastfirst_name' ); |
結果
(ユーザー編集)
(ユーザー新規追加)
(プロフィール)
ユーザー一覧で名前を姓名の順にする
プラグインなしで設定する場合は、functions.phpに下記のように記載します。(並び替えを調整する設定も含めていますが、並び替えは50音順ではなく文字のコード順になります)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
/** * ユーザー一覧の名前を姓名に変更します。(列の内部名の設定) */ function lastfirst_users_column( $columns ) { $new_columns = array(); foreach ( $columns as $k => $v ) { if ( 'name' == $k ) $new_columns['lastfirst_name'] = $v; else $new_columns[$k] = $v; } return $new_columns; } add_filter( 'manage_users_columns', 'lastfirst_users_column' ); /** * ユーザー一覧の名前を姓名に変更します。(値の設定) */ function lastfirst_users_custom_column( $output, $column_name, $user_id ) { if ( 'lastfirst_name' == $column_name ) { $user = get_userdata($user_id); return $user->last_name . ' ' . $user->first_name; } } add_filter( 'manage_users_custom_column', 'lastfirst_users_custom_column', 10, 3 ); /** * ユーザー一覧の姓名のソート設定を行います。 */ function lastfirst_users_sortable_column( $columns ) { $columns['lastfirst_name'] = 'lastfirst_name'; return $columns; } add_filter( 'manage_users_sortable_columns', 'lastfirst_users_sortable_column' ); /** * ユーザー一覧の姓名のソート処理を追加します。 */ function lastfirst_pre_user_query($query){ global $wpdb; // 姓名 if ( isset($query->query_vars['orderby']) && 'lastfirst_name' == $query->query_vars['orderby'] ) { $query->query_from .= " LEFT JOIN $wpdb->usermeta AS ln ON ($wpdb->users.ID = ln.user_id) AND ln.meta_key = 'last_name' "; $query->query_from .= " LEFT JOIN $wpdb->usermeta AS fn ON ($wpdb->users.ID = fn.user_id) AND fn.meta_key = 'first_name' "; $query->query_orderby = " ORDER BY CONCAT(ln.meta_value, fn.meta_value) " . ($query->query_vars["order"] == 'ASC' ? 'asc' : 'desc'); } return $query; } add_filter( 'pre_user_query', 'lastfirst_pre_user_query' ); |
結果
※姓名にするよりは、投稿一覧などと合わせて表示名にするほうがよい気がします(設定で表示名を姓名にもできるため)。ユーザー一覧で名前を表示名にする方法は「管理画面のユーザー一覧の名前を表示名に変更する」を参考にしてください。
プラグインで設定する
プラグインで設定する場合は、「Last Name First Name」というプラグインをインストールして有効化します。(有効化するだけで上記のような結果になります)
※ 2016/02時点で「2年以上更新されていない」という表示が出ておりWordPress 4.4.2で確認したところではユーザーの新規追加画面では順番が変わらないようでしたが、他のユーザー編集などの部分では動作していました。