WordPress カスタム投稿タイプでカスタムページテンプレートを使う方法

WordPress カスタム投稿タイプでカスタムページテンプレートを使う方法

WordPress カスタム投稿タイプでカスタムページテンプレートを使う方法を紹介します。
例えば、カスタム投稿タイプで各記事ごとに違ったテンプレートを使いたい時に便利な方法です。

  1. ページテンプレートとは?
  2. ページテンプレートの特徴
  3. カスタムページテンプレート
    1. カスタム投稿タイプでカスタムページテンプレートを使用する方法

ページテンプレートとは?

通常 WordPress では投稿に合わせた共通のテンプレートを使用しますが、各記事ごとに違ったテンプレートを使用したい場合もあります。そういった時にページテンプレート機能を使用することで、各記事ごとに選択したテンプレートのデザインに変えることができます。

ページテンプレートの特徴

WordPress で固定ページを表示する場合に、特定の命名規則に沿ったファイル名のテンプレートを作成すると、ファイル名に紐づく形でテンプレートを使用することができます。
例えば、製品情報ページを作成する時に、スラッグ product、ID が 123 と言うページがあった場合、ファイル名に次の名前をつけるとそのテーマファイルを優先的に選択することができます。
・page-{slug}.php(例えば製品情報の場合:page-product.php)
・page-{ID}.php(例えば製品情報の場合:page-123.php)

カスタムページテンプレート

WordPress には前述した方法とは別に、名前に縛られず任意のファイルをテンプレートに指定できる「カスタムページテンプレート」機能が存在します。
例えば、複数のページで同じデザインのページを表示する場合、次のコードをテンプレートファイルの冒頭に追加します。

<?php
/*
Template Name: カスタムページ
*/
?>

コードを追加後ページ属性のテンプレート名に指定した名前(今回の場合「カスタムページ」)が表示されます。
後は、表示された名前を選択することでそのテンプレートファイルを使ってページを表示できるようになります。

カスタム投稿タイプでカスタムページテンプレートを使用する方法

カスタムページテンプレートの機能は、以前固定ページでしか使用できなかった機能ですが、WordPress 4.7 以降ではポストタイプを指定できるようになったことで、カスタム投稿タイプでもこの機能が使用できるようになります。
例えば、投稿と固定ページとカスタム投稿タイプ(スラッグ:products)でカスタムページテンプレートを使用したい場合は、次のコードをテーマファイルの冒頭に追加します。

<?php
/*
Template Name: カスタムページ
Template Post Type: post, page, products
*/
?>

まとめ

WordPress カスタム投稿タイプでカスタムページテンプレートを使う方法を紹介しました。