※本記事はアフィリエイト広告を含みます。
■ 目的
管理画面の投稿一覧および固定ページ一覧に記事ID(Post ID)の列を新規追加し、ID順でのソート(並び替え)を可能にする。ショートコードによる特定記事の呼び出しや除外設定など、運用時にIDを即座に視認・取得できる環境を構築する。
■ 実装コード
現在有効化しているテーマ(または子テーマ)のディレクトリ内にある functions.php の末尾に以下のコードを追記する。
※functions.php は管理画面の「外観」>「テーマファイルエディター」から編集可能だが、構文エラーによる画面の真っ白化(サイトダウン)を防ぐため、必ずFTPソフトやサーバーのファイルマネージャー経由でバックアップを取ってから追記すること。
パスは /wp-content/themes/使用中のテーマ名/functions.php である。
また、表示オプション(画面右上のプルダウン)へのチェックボックス追加機能については、WordPressのコア機能仕様により、カラム(列)を新規登録した時点で自動的に生成・追加されるため、専用の記述は不要である。
// 1. カラム(列)の追加(投稿・固定ページの両方に適用)
add_filter('manage_posts_columns', 'add_post_id_column');
add_filter('manage_pages_columns', 'add_post_id_column');
function add_post_id_column($columns) {
// 列の先頭(チェックボックスの直後)にID列を挿入するための配列再構築
$new_columns = array();
foreach ($columns as $key => $value) {
$new_columns[$key] = $value;
if ($key == 'cb') {
$new_columns['post_id'] = 'ID';
}
}
return $new_columns;
}
// 2. 追加したカラムに実際の記事IDを出力する
add_action('manage_posts_custom_column', 'display_post_id_column', 10, 2);
add_action('manage_pages_custom_column', 'display_post_id_column', 10, 2);
function display_post_id_column($column_name, $post_id) {
if ($column_name == 'post_id') {
// 現在のループにおける記事IDをそのまま出力
echo $post_id;
}
}
// 3. 追加したIDカラムをソート(並び替え)可能にする
add_filter('manage_edit-post_sortable_columns', 'sortable_post_id_column');
add_filter('manage_edit-page_sortable_columns', 'sortable_post_id_column');
function sortable_post_id_column($columns) {
// 内部的なソートキーとして WordPress標準の ID を指定
$columns['post_id'] = 'ID';
return $columns;
}
// 4. 管理画面側のCSSを出力し、IDカラムの横幅を最適化する
add_action('admin_head', 'post_id_column_css');
function post_id_column_css() {
echo '<style type="text/css">
.column-post_id { width: 60px !important; text-align: center; }
</style>';
}
■ 結果
投稿および固定ページ一覧の左端(チェックボックスの横)にID列が追加され、列の見出しをクリックすることでIDの昇順・降順ソートが可能になる。
また、画面右上の表示オプションを開くと自動的にIDの項目が生成されており、チェックの着脱で表示・非表示の切り替えが機能する。
■Before


※表示オプション
■After


※表示オプション