WordPressのテンプレートとテンプレート階層を簡単に説明

wordpressのテンプレートとは何か、またテンプレート階層に関して簡単に説明する。

テンプレート階層の表示の優先順位や、それぞれ小tなる役割を持つホームページ、固定ページ、投稿ページごとのテンプレートファイルの優先順位も紹介。

カスタムテンプレートに関しても説明する。


そもそもwordpressのテンプレートとは何か

テンプレートとは、Webページの種類ごと、またはWebページのパーツごとに用意されるphpファイルのこと。


Webページの種類は具体的に何がある?

what is template hierarchy
https://localjapan.shotarokamimura.com/

例えば上記のページでWebページの種類を分類するとこのようになる。

  • index.php : メインのページ。ホームページ。
  • archive.php : ニュースの一覧を表示するページ
  • single.php : ニュースの詳細を表示するページ
  • archive-blog.php : ブログの一覧を表示するページ
  • single-blog.php : ブログ一記事のの詳細を表示するページ
  • page-contact.php : お問い合わせページ

それぞれのphpファイルに、役割があり、これらのphpファイルをテンプレートという。

一般的に使われるテンプレートは下記のようなものがある。

種類テンプレート内容
テーマの必須ファイルindex.php他に適切なテンプレートがないときに最終的に使用されるファイル
フロントページfront-page.phpサイトのトップページ
ホームページhome.phpブログのトップページ
固定ページpage.php固定ページ
投稿single.php個別の投稿の詳細ページ
カテゴリーcategory.phpカテゴリーごとの記事一覧ページ
タグtag.phpタグごとの記事一覧ページ
作成者author.php作成者別の記事一覧ページ
日付date.php日付ごとの記事一覧ページ
アーカイブarchive.php記事一覧ページ
検索結果search.php検索結果のページ
404 (Not Found)404.php404エラー(Not Found)ページ

上記含めてさらに細かくテンプレートファイルを知りたい場合は、WordPress の公式オンラインマニュアルを確認するとさらに細かく確認できる。

 
  テンプレートファイルについて  
 
    



Webページのパーツとは?

テンプレートはページ毎だけでなく、パーツ毎にも使われる。

例えばwordpressのヘッダーとフッターの例を見てみる。

what is template hierarchy

wordpressでは、header.phpの中に書かれているヘッダーとfooter.phpの中に書かれるフッターはどのページにも共通して入れることができる。

図のように、ページ毎に「テンプレートタグ」と呼ばれるタグを書けば、同じパーツをどこでも使い回すことができる。

テンプレートタグの例:

  • ヘッダーを呼び出す時: <?php get_header() ;?>
  • フッターを呼び出す時: <?php get_footer() ;?>

という形だ。

このようにヘッダーやフッターのようなパーツを作るときに用いられるファイルもテンプレートと呼ばれる。

なのでここではheader.phpもfooter.phpもテンプレートと呼ばれる。

テンプレートタグの詳細についてはこちらに書いた。

[st-card myclass=”” id=3633 label=”” pc_height=”” name=”” bgcolor=”” color=”” fontawesome=”” readmore=”on”]


テンプレート階層とは

テンプレート階層とは、どのテンプレートファイルを使用するかを定めるルールのこと。


テンプレート階層の優先順位

テンプレートファイルには表示の順番に優先順位がある。

その優先順位を確認するには、公式オンラインマニュアルの図を見ることで確認できる。

what is template hierarchy
wordpress Codex日本語版:テンプレート階層


表示ページの優先順位

例えば上の図でいくと、page.php > singular.php > index.phpという順番で繋がっている。

この順番で行くと、テーマファイルの中に、もしpage.phpやsingular.phpが存在しなかった場合、index.phpが表示されるということになる。

例えば、お問い合わせの固定ページを作るとする。

もしpage.phpを用意しなければ、URLが「〇〇.com」でも「〇〇.com/contact/」でも自動的にindex.phpに繋がるようになる。

もし固定ページのテンプレートであるpage.phpをテーマファイルに入れれば、「〇〇.com/contact/」のURLでは優先的に固定ページが表示されるようになる。

what is template hierarchy


ページ毎のテンプレート階層

wordpressのページにはそれぞれホームページ、投稿ページ、固定ページ、カテゴリー別の記事一覧ページなど様々な役割があるが、それぞれのページ毎に、もっと細かく優先順位をつけることができる。


ホームページ

ホームページは、一番最初に表示されるメインのページ。

テンプレートの優先順位は以下のようになる。

  1. front-page.php
  2. 固定ページ
  3. home.php
  4. index.php


固定ページ

固定ページとは、会社概要やお問い合わせなどそのページ一つだけで完結するページのこと。

テンプレートの優先順位は以下のようになる。

  1. page-{slug}.php
  2. page-{ID}.php
  3. page.php
  4. index.php


スラッグとは?

slugとは、固定ページや投稿につけることのできるキーワードのこと。

例えば「page-{slug}.php」のファイルを考えてみる。

もしお問い合わせを作りたい場合であれば、スラッグに「contact」と付けて、ファイルに「page-contact.php」と付けることで、

〇〇.com/contact/に接続したときに「page-contact.php 」に接続することができる。


どうやって使い分けるの?

例えばお問合せページを作るとき、もしpage.phpにお問い合わせの項目をつけてしまうと全ての固定ページにお問い合わせの項目がついてしまう。

会社概要のページやメンバー紹介のページを個別ページで作りたいときも、全てのページにお問い合わせの項目がついてしまう。

それぞれ個別のデザインが映し出されるように、スラッグをつけたファイルを用意することで、それぞれ異なる個別ページを用意することができる。

what is template hierarchy


カテゴリー別記事一覧ページ

カテゴリー別記事一覧ページは、カテゴリー分けされた記事の一覧を表示するページ。

例えばこのサイトなら、wordpressのカテゴリーページは下記のようになる。

what is template hierarchy
wordpressのカテゴリーページ

カテゴリー別記事のテンプレートの優先順位は以下のようになる。

  1. category-{slug}.php
  2. category-{ID}.php
  3. category.php
  4. archive.php
  5. index.php


どうやって使い分けるの?

こちらも先ほどと同じく、スラッグをつけて別ファイルを用意することで、別のデザインを用意できる。

例えばwordpressの記事一覧ページのバックグラウンドの色は青にして、他の記事一覧ページのバックグラウンドの色は白にする、という場合は、

wordpress用の記事一覧ページように別途「category-wordpress.php」というようなファイルを用意することができる。


投稿ページのテンプレート

投稿ページは、それぞれの個別の記事のページのデザインを表示する。

テンプレートの優先順位は以下のようになる。

  1. single-{post-type}.php
  2. single.php
  3. singular.php
  4. index.php


カスタムテンプレートとは

カスタムテンプレートとは、固定ページを作成する際に選択することができるオリジナルのテンプレートのこと。

編集画面の横のテンプレートで固定ページのデザインを変更できるが、ここでオリジナルのテンプレートを追加することができる。

what is template hierarchy



以上Wordpressのテンプレートとテンプレート階層に関して説明した。

wordpressの使い方ののまとめ記事はこちら。

[st-card myclass=”” id=3366 label=”” pc_height=”” name=”” bgcolor=”” color=”” fontawesome=”” readmore=”on”]