複数ユーザー運営時に、投稿一覧に「最終更新者」を追加する方法

Cocoonカスタマイズ集
この記事は約2分で読めます。
記事内に広告が含まれています。

はじめに

複数ユーザーで運営していると、誰が最後に投稿を編集したのか把握するのが意外と大変です。

特に、作成者と編集者が異なる場合、投稿一覧で作成者だけを見ても最新の更新状況は分かりません。

そこで、投稿一覧に「最終更新者」に表示します。

この記事では、この方法について説明します。

完成イメージ

実装手順

以下のコードを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');
  }
});

さいごに

今回紹介した方法を使えば、投稿一覧に「最終更新者」を追加して、複数ユーザーでの運営をより効率的に管理できます。
誰が最後に投稿を編集したのかが一目で分かるようになるため、責任の所在が明確になり、更新状況の把握も容易になります。

タイトルとURLをコピーしました