どのユーザーがいつログインしたか、誰が記事を編集したか確認できる方法

WordPressで「どのユーザーがいつログインしたか・誰が記事を編集したか」を確認する方法

WordPressの管理画面では、標準機能だけでは「ユーザーのログイン履歴」や「記事の編集者」を簡単に確認することはできません。
しかし、簡単なカスタムコードやプラグインを使うことで、誰がいつログインしたか、誰が記事を編集したかを確認できるようになります。

実装のポイント

  • ユーザーのログイン時刻を記録する
  • 投稿・固定ページの編集者を記録・表示する
  • 管理画面の投稿一覧や独自ページで確認できる

functions.php にコードを追加


// ユーザーがログインした日時をユーザーメタに記録
add_action('wp_login', 'record_user_login_time', 10, 2);
function record_user_login_time($user_login, $user) {
    update_user_meta($user->ID, 'last_login', current_time('mysql'));
}

// 投稿が更新されたときに編集者を記録
add_action('post_updated', 'record_post_editor', 10, 3);
function record_post_editor($post_ID, $post_after, $post_before) {
    $editor_id = get_current_user_id();
    update_post_meta($post_ID, '_last_editor', $editor_id);
}

// 管理画面の投稿一覧に「最終編集者」と「最終ログイン」を表示
add_filter('manage_posts_columns', 'add_editor_last_login_columns');
function add_editor_last_login_columns($columns) {
    $columns['last_editor'] = '最終編集者';
    $columns['last_login'] = '最終ログイン';
    return $columns;
}

add_action('manage_posts_custom_column', 'show_editor_last_login_columns', 10, 2);
function show_editor_last_login_columns($column, $post_id) {
    if ($column === 'last_editor') {
        $editor_id = get_post_meta($post_id, '_last_editor', true);
        if ($editor_id) {
            $user_info = get_userdata($editor_id);
            echo esc_html($user_info->display_name);
        }
    }
    if ($column === 'last_login') {
        $editor_id = get_post_meta($post_id, '_last_editor', true);
        if ($editor_id) {
            $last_login = get_user_meta($editor_id, 'last_login', true);
            echo esc_html($last_login);
        }
    }
}

// 投稿編集画面に最終編集者・最終ログインを表示するメタボックスを追加
add_action('add_meta_boxes', 'add_last_editor_meta_box');
function add_last_editor_meta_box() {
    add_meta_box(
        'last_editor_info',          // ID
        '最終編集者情報',             // タイトル
        'show_last_editor_meta_box', // コールバック
        'post',                      // 投稿タイプ
        'side',                      // サイドに表示
        'high'                       // 優先度
    );
}

function show_last_editor_meta_box($post) {
    // 投稿メタから最終編集者IDを取得
    $editor_id = get_post_meta($post->ID, '_last_editor', true);

    if ($editor_id) {
        $user_info = get_userdata($editor_id);
        $last_login = get_user_meta($editor_id, 'last_login', true);

        echo '

最終編集者: ' . esc_html($user_info->display_name) . '

'; echo '

最終ログイン: ' . esc_html($last_login) . '

'; } else { echo '

まだ編集情報はありません。

'; } }
補足:
- 管理画面の投稿者一覧に最終編集者と最終ログインが表示されます。
- 「最終ログイン」は記事を編集したユーザーの最新ログイン時間を表示します。
- 管理者や編集者の行動を追跡できるので、複数ユーザー運営サイトでも安心です。
- 投稿一覧での列追加はテーマに依存せず動作します。

代用プラグイン

  • WP Activity Log:ユーザーのログイン履歴や投稿・ページの編集履歴を詳細に記録
  • Simple History:誰が何をしたかを簡単に確認できる履歴表示

まとめ

この方法を使うと、管理者はサイト運営状況を簡単に把握できます。
「誰がいつログインしたか」、「誰が記事を編集したか」を確認することで、複数ユーザーで運営するサイトでも管理がしやすくなります。