はじめに
複数ユーザーで運営していると、誰が最後に投稿を編集したのか把握するのが意外と大変です。
特に、作成者と編集者が異なる場合、投稿一覧で作成者だけを見ても最新の更新状況は分かりません。
そこで、投稿一覧に「最終更新者」に表示します。
この記事では、この方法について説明します。
完成イメージ

実装手順
以下のコードをfunctions.phpに追加します。
// 管理画面一覧にカラムを追加
add_filter('manage_posts_columns', function ($columns) {
$columns['last_editor'] = '最終更新者';
return $columns;
});
// 管理画面一覧のカラムを並び替え可能に設定
add_filter('manage_edit-post_sortable_columns', function ($columns) {
$columns['last_editor'] = 'last_editor';
return $columns;
});
// 管理画面一覧のカラムにデータを表示
add_action('manage_posts_custom_column', function ($column, $post_id) {
if ($column !== 'last_editor') {
return;
}
// 最終更新者のユーザーIDを取得
$last_editor_id = get_post_meta($post_id, '_edit_last', true);
if ($last_editor_id) {
$user = get_userdata($last_editor_id);
echo esc_html($user->display_name);
} else {
echo '—';
}
}, 10, 2);
// 投稿クエリの取得条件を変更
add_action('pre_get_posts', function ($query) {
if (!is_admin()) {
return;
}
$orderby = $query->get('orderby');
if ($orderby === 'last_editor') {
$query->set('meta_key', '_edit_last');
$query->set('orderby', 'meta_value_num');
}
});
さいごに
今回紹介した方法を使えば、投稿一覧に「最終更新者」を追加して、複数ユーザーでの運営をより効率的に管理できます。
誰が最後に投稿を編集したのかが一目で分かるようになるため、責任の所在が明確になり、更新状況の把握も容易になります。

