WordPressのちょっと便利な小技の紹介です。
ユーザー一覧に、ユーザーIDと、そのユーザーの最終ログイン日時を表示する。
使用テーマのfunctions.phpファイルに、以下のコードをコピペしてお使いください。
add_filter( 'manage_users_columns', function( $columns ) { return array_merge( array( 'cb' => $columns['cb'] ), array( 'user_id' => 'ユーザーID' ), $columns, array( 'last_login' => '最終ログイン' ) ); }); add_action( 'manage_users_custom_column', function( $dummy, $column_name, $user_id ) { if( 'user_id' === $column_name ) return $user_id; if( 'last_login' === $column_name ) return get_user_meta( $user_id, 'my-login', true ); }, 10, 3 ); add_action( 'wp_login', function( $user_login, $user ){ update_user_meta( $user->ID, 'my-login', date_i18n('Y-m-d H:i')); }, 10, 2);
補足
上記コードの1〜8行目を以下のように書いてもユーザーIDと最終ログインの項目を載せることができますが、カラムの最後に付け足されることになるため、項目の並びが不自然になります。
add_filter( 'manage_users_columns', function( $columns ) { $columns['user_id'] = 'ユーザーID'; $columns['last_login'] = '最終ログイン'; return $columns; });
そこで、「チェックボックス」→「ユーザーID」→「他の項目」→「最終ログイン」の並びにするために、array_merge関数を使って、cbを指定しています。
add_filter( 'manage_users_columns', function( $columns ) { return array_merge( array( 'cb' => $columns['cb'] ), array( 'user_id' => 'ユーザーID' ), $columns, array( 'last_login' => '最終ログイン' ) ); });
このcbは、どこから出てきたのか?ユーザー一覧画面のソースや、Chromeの検証ツール(インスペクター)で確認してみてください。チェックボックスのカラムには、cbというキーワードが使われていることが分かります。