Wp-admin/users.phpに移動すると、2列目にユーザーのフルネームが表示されますが、正しい順序ではありません。ハンガリーでは、異なる名前順を使用します。 http://ja.wikipedia.org/wiki/Hungarian_names
だから私は "姓 - 名"から "姓 - 名"に名前を変更する必要があります
これどうやってするの?
デフォルトのName列を変更することはできませんが、それを非表示にして独自のカスタム列を作成することができます。
まず、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;
}
ここで欠けていることの1つは、列がソート可能ではないということです。可能な方法はpre_user_query
アクションを介してであることを私は知っていますが、私はこれを行う方法をあまり理解していません。この場合は、列をソート可能にする通常の方法では機能しないため、SQLを直接変更する必要があるようです。姓/名はユーザーメタであり、ユーザークエリのこのコンテキスト内でユーザーメタで並べ替えることはできません。
また、デフォルトのName列もソートできないようです。Nameヘッダーをクリックしても、ユーザー名ヘッダーをクリックするのと同じことが実行されます。