WordPress:固定ページ一覧に使用中テンプレートの項目を追加する方法

WordPress:固定ページ一覧に使用中テンプレートの項目を追加する方法

WordPressで管理画面の固定ページ一覧で現在使用しているテンプレートを表示する項目を追加する方法です。

固定ページ一覧に「テンプレート」項目を追加

実装後はイメージの一番右のように「テンプレート」という項目が追加され、そこにそれぞれページで使用しているテンプレート名が表示されます。

実装にはfunctions.phpに下記のように記述し、この場合はTemplate Nameで設定しているテンプレート名が表示されます。

functions.php

function add_pages_columns( $columns ) {
  $columns['template'] = 'テンプレート';
  return $columns;
}
function custom_pages_column( $column_name, $post_id ) {
  if ( $column_name == 'template' ) {
    $template = 'Default';
    $templates = get_page_templates();
    $template_slug = get_page_template_slug( $post_id );
    foreach( $templates as $name => $file ) {
      if ( $file == $template_slug ) {
        $template = $name;
      }
    }
    echo $template;
  }
}
add_filter( 'manage_pages_columns', 'add_pages_columns' );
add_action( 'manage_pages_custom_column', 'custom_pages_column', 10, 2 );

テンプレート名ではなくファイル名を表示させたい場合は、上のコードで$template = $name;となっているのを$template = $file;に変更することでも対応できますが、単純に下記のような記述で実装できます。

functions.php

function add_pages_columns( $columns ) {
  $columns['template'] = 'テンプレート';
  return $columns;
}
function custom_pages_column( $column_name, $post_id ) {
  if ( $column_name == 'template' ) {
    $template = get_page_template_slug( $post_id );
    echo ( $template ) ? $template : 'Default';
  }
}
add_filter( 'manage_pages_columns', 'add_pages_columns' );
add_action( 'manage_pages_custom_column', 'custom_pages_column', 10, 2 );

WordPressで管理画面に関するその他のカスタマイズは以下にまとめているので、興味ある方はこちらもご覧ください。

Close the search window,
please press close button or esc key.