BLOGブログ

番外編.テーマ作成時に知っておくと便利な優先順位や独自テンプレート

WordPressでは、独自に決められたテンプレートを追加することで、様々なページの表示を分けて出力することができます。

テンプレートの優先順位や種類、投稿や固定ページの個別テンプレートの作成方法を知り、自分だけのWordPressテーマに仕上げていきましょう。

今回は、知っておくと便利なWordpressのテンプレートのあれこれをご紹介します。

WordPressのテンプレートの優先順位

トップページ

トップページのテンプレートの優先順位は下記の通りになります。

優先順位(高い > 低い)
front-page.php home.php ※1 固定ページテンプレート ※2 index.php

TOPページ

front-page.php

home.php ※1

固定ページテンプレート ※2

index.php

※1 『設定 > 表示設定 > ホームページの表示』の設定が最新の投稿の場合。
※2 『設定 > 表示設定 > ホームページの表示』の設定が固定ページの場合。固定ページのテンプレート優先順位については、下で解説。

トップページは、『front-page.php』が最優先で表示されます。『front-page.php』は、WordPressの『設定 > 表示設定 > ホームページの表示』の設定に関係なく優先して表示されるため、トップページの表示を絶対に変えたくない場合などに使用します。

次の『home.php』は、『設定 > 表示設定 > ホームページの表示』の設定によって分岐されるテンプレートです。設定が『最新の投稿』のときは『home.php』、『固定ページ』のときは『page.php』がテンプレートとして適応されます。

アーカイブ

アーカイブページのテンプレートの優先順位は下記の通りになります。

優先順位(高い > 低い)
カテゴリー category-{slug}.php category-{ID}.php category.php archive.php index.php
タグ tag-{slug}.php tag-{ID}.php tag.php archive.php index.php
日付 date.php archive.php index.php
著者 author-{name}.php author-{ID}.php author.php archive.php index.php

カテゴリー

category-{slug}.php

category-{ID}.php

category.php

archive.php

index.php

タグ

tag-{slug}.php

tag-{ID}.php

tag.php

archive.php

index.php

日付

date.php

archive.php

index.php

著者

author-{name}.php

author-{ID}.php

author.php

archive.php

index.php

全てのアーカイブページのベースとなるのは、『archive.php』と『index.php』で、それ以上に細かく出力を分けたい場合は、更に優先順位の高いテンプレートを作成するというイメージです。

また、各アーカイブページに大きな違いがない場合は、各テンプレートを作成するのではなく『archive.php』内で各ページごとの条件分岐を行ってコンテンツを分ける方法があります。

投稿・固定ページ

投稿・固定ページの基本的なテンプレートの優先順位は下記の通りになります。

優先順位(高い > 低い)
投稿 カスタムテンプレート.php single.php singlur.php index.php
固定ページ カスタムテンプレート.php page-{slug}.php page-{ID}.php page.php singular.php index.php

投稿

カスタムテンプレート.php

page-{slug}.php

page-{ID}.php

page.php

singular.php

index.php

固定ページ

カスタムテンプレート.php

page-{slug}.php

page-{ID}.php

page.php

singular.php

index.php

投稿と固定ページで、最優先されるテンプレートは『カスタムテンプレート』になります。(※作成方法については、本記事の『投稿や固定ページに様々なテンプレートを適応する』で解説します。)

デモでは、投稿と固定ページのテンプレートを『single.php』と『page.php』に分けて作成していますが、『single.php』と『page.php』を作成せずに『singlur.php』を作成することで、投稿と固定ページを共通のテンプレートで出力できます。

基本的なテンプレートの優先順位については以上です。上記の他にも『カスタム投稿』『カスタムタクソノミー』『検索結果』『404』ページなどの分岐がありますが、今回は作成しないので別の記事で詳しく説明しています。

投稿や固定ページに様々なテンプレートを適応する

固定ページ用の専用テンプレートの作り方

WordPressの固定ページを出力する場合には、通常は『page.php』が適応されますが、新たにテンプレートファイルを作成することで、デザインや出力する要素を各固定ページごとに切り替えることができます。

固定ページ用の専用テンプレートを作成する場合は、WordPressテーマ内に新しく『.php』形式のテンプレートを追加します。テンプレートの名前の指定は特にないので、管理しやすい名前をつけましょう。

作成したら、下記のコードをソースの一番最初に記述してください。

<?php
/*
Template Name: テンプレートの名前
*/
?>

『テンプレートの名前』の部分を自分の付けたいテンプレート名に変更してください。反映されると、固定ページの編集画面で使用するテンプレートを選択できるようになります。

投稿用の専用テンプレートの作り方

固定ページと同様に、投稿でもWordPressテーマ内に新しく『.php』形式のテンプレートファイルを作成することで、デザインや出力を各投稿ごとに切り替えることができます。こちらも、テンプレートの名前にこれといった決まりは無いので、管理しやすい名前をつけましょう。

作成したら、下記のコードをソースの一番最初に記述してください。

<?php
/*
Template Name: テンプレートの名前
Template Post Type: post
*/
?>

『テンプレートの名前』の部分を自分の付けたいテンプレート名に変更してください。反映されると、投稿の編集画面で固定ページと同じように使用するテンプレートを選択できるようになります。

テーマのテンプレートファイル内で別のテンプレートを呼び出して使用する

WordPressでは、様々なテンプレートで出力やデザインを指定していますが、複数のテンプレートに共通の内容があることも少なくありません。

共通する部分が複数ある場合は、共通部分を記述した新たなテンプレートを作成し呼び出しましょう。共通部分のテンプレートを外部化することで、修正する際なども一箇所訂正するだけで済むので効率的にWordPressのテーマを編集することができます。

共通部分は好きな名前でテンプレートを作成してもOKです。新しく作成したテンプレートを呼び出す場合には、下記の記述を呼び出したい場所に追加してください。

<?php get_template_part( '呼び出したいテンプレート名' ); ?>

『’呼び出したいテンプレート名’』の部分には拡張子は不要です。

上記のように、Wordpressのテーマには、さまざまな優先順位や便利なテンプレート機能があります。

しっかりと把握して、テーマの作成に役立ててください。

CONTACTお問い合わせ

様々な制作経験から得たノウハウを活かし、ご予算・ご要望に合わせたお客様のビジネスのお手伝いができるかと思います。
福岡を中心に事業を行っておりますが、ZOOMやChatwork、LINE等のツールを利用して遠距離のお客様との打ち合わせも行っております。
WEB関連でお困りの際はお気軽にご相談ください。