WP カスタム投稿タイプでテンプレートの選択、順序を設定する

WordPressのカスタム投稿タイプを使っているときに、固定ページのようなページのテンプレートを選択したり、ページの順序を設定したい時に。

因みにカスタム投稿タイプ単独でテンプレートファイルを作る場合は

single-{カスタム投稿タイプ}.php  //シングルページ
archive-{カスタム投稿タイプ}.php //アーカイブページ(ある場合)

ですが、固定ページや他のカスタム投稿タイプともテンプレートを共有したり、複数のテンプレートを用意して記事ごとに選択したい時に使えます。

カスタム投稿タイプでもテンプレートファイルを使えるようにする

通常、テンプレートファイルは固定ページで使います。自作のテンプレートファイルを作成するには

/*
Template Name: テンプレートファイル名
*/

をPHPファイル冒頭に記述します。

このテンプレートファイルをカスタム投稿タイプでも使いたい場合は

/*
Template Name: テンプレートファイル名
Template Post Type: ポストタイプ
*/

Template Post Typeを追記します。
「No Sidebar」という名前のテンプレートを固定ページとitemというカスタム投稿タイプで使いたい場合は以下のようになります。

/*
Template Name: No Sidebar
Template Post Type: page, item
*/

記事編集画面でテンプレートの選択を表示する

記事ごとにテンプレートを選択したい場合は、register_post_type()で

'hierarchical' => true, //固定ページのような階層を持たせる 初期値:false

記事編集画面に親を選択するボックスを表示するためには、'supports' パラメータに 'page-attributes' がなれけれなりません。

'supports' => 'page-attributes'

プラグインもありました

Custom Post Type UIなどのプラグインで、カスタム投稿タイプを設定している場合は、下記のプラグインが良さそうです。

WordPress

Posted by ともろう