WordPress: カスタムポストの一覧に使用しているテンプレートファイル名を表示する

WordPress: カスタムポストの一覧に使用しているテンプレートファイル名を表示する

2024年1月25日

仕事でとにかく大量のテンプレートを作成する羽目になって、後からテンプレートこれをあれ、あれをこれ、などと訳のわからないことをやらされていて、ページ数は大量でどのページがどのテンプレートを使っているのかパッとみた感じで分からなくなってしまったので、一覧ページでテンプレートファイル名を表示するようにしました。

functions.phpに下記のソースを追加します。◯◯◯の部分はカスタム投稿タイプ名を入れます。

// カスタム列を追加する関数
function add_◯◯◯_columns($columns) {
    $columns['◯◯◯_template_name'] = 'テンプレート名';
    return $columns;
}

// 各投稿のカスタムフィールド(テンプレート名)を表示する関数
function show_◯◯◯_template_name($column, $post_id) {
    if ('◯◯◯_template_name' === $column) {
        // カスタムフィールドからテンプレート名を取得
        $template_name = get_post_meta($post_id, '◯◯◯_template_name', true);
        echo $template_name ? esc_html($template_name) : '未設定';
    }
}

// カスタムポストタイプ '◯◯◯' の列を管理するフック
add_filter('manage_◯◯◯_posts_columns', 'add_◯◯◯_columns');
add_action('manage_◯◯◯_posts_custom_column', 'show_◯◯◯_template_name', 10, 2);