WordPressの管理画面で投稿一覧を効率的に管理するために、「最終更新日」を表示し、そのカラムでソートできるようにする方法を紹介します。このカスタマイズにより、コンテンツの更新履歴を簡単に追跡し、管理がしやすくなります。
最終更新日カラムを投稿一覧に追加する
まず、最終更新日を表示するために、投稿一覧に「最終更新日」というカラムを追加します。以下のコードをテーマの functions.php ファイルに追加してください。
// 投稿一覧に最終更新日カラムを追加
function add_last_updated_column($columns) {
$columns['last_updated'] = __('最終更新日');
return $columns;
}
add_filter('manage_posts_columns', 'add_last_updated_column');
// 最終更新日カラムにデータを表示
function show_last_updated_column_content($column, $post_id) {
if ($column === 'last_updated') {
$last_updated = get_the_modified_date('', $post_id);
echo esc_html($last_updated);
}
}
add_action('manage_posts_custom_column', 'show_last_updated_column_content', 10, 2);
このコードは、投稿一覧に「最終更新日」カラムを追加し、各投稿の最終更新日を表示します。
最終更新日カラムでソート可能にする
次に、最終更新日でソートできるようにするために、追加のカスタマイズが必要です。以下のコードを同じ functions.php ファイルに追加します。
// ソート可能なカラムを追加
function sortable_last_updated_column($columns) {
$columns['last_updated'] = 'last_updated';
return $columns;
}
add_filter('manage_edit-post_sortable_columns', 'sortable_last_updated_column');
// ソートのためのクエリ変更
function sort_by_last_updated_column($query) {
if (!is_admin()) {
return;
}
$orderby = $query->get('orderby');
if ('last_updated' == $orderby) {
$query->set('meta_key', '_edit_last');
$query->set('orderby', 'meta_value_num');
}
}
add_action('pre_get_posts', 'sort_by_last_updated_column');
このコードは、最終更新日カラムをソート可能にし、そのカラムで投稿を並べ替えるためのクエリ設定を行います。
管理画面で確認する
コードを追加した後、WordPressの管理画面の「投稿」セクションに移動し、「最終更新日」カラムが追加されていることを確認します。カラムのヘッダーをクリックすることで、最終更新日でソートできることが確認できます。
まとめ
このカスタマイズにより、投稿の更新履歴を簡単に追跡でき、管理の効率が向上します。ぜひ、試してみてください。