WordPressの管理画面(投稿一覧)に記事IDを表示しソート可能にする方法

※本記事はアフィリエイト広告を含みます。

WordPressの管理画面(投稿一覧)に記事IDを表示しソート可能にする方法

■ 目的

管理画面の投稿一覧および固定ページ一覧に記事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

※表示オプション