WordPress3分間フッキング

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というキーワードが使われていることが分かります。

BACK TOP