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

WordPressでは各ページ毎にテンプレートファイルの読み込み優先順位が決まっています。
優先順位の高い物から順に存在しなければ下位のテンプレートを読み込む仕組みになっています。

高 ← 優先順位 → 低
トップページ front-page.php home.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
カスタム分類アーカイブ taxonomy-{taxonomy}-{term}.php taxonomy-{taxonomy}.php taxonomy.php archive.php index.php
作成者アーカイブ author-{nicename}.php author-{id}.php author.php archive.php index.php
カスタム投稿タイプアーカイブ archive-{post_type}.php archive.php index.php
検索結果 search.php index.php
個別投稿ページ single-post.php single.php index.php
カスタム投稿ページ single-{post_type}.php single.php index.php
固定ページ page-{slug}.php page-{id}.php page.php index.php
404ページ 404.php index.php

 

例えばカテゴリーアーカイブでカテゴリー毎に表示を変えたい場合は
テンプレート内で条件分岐させることで表示を変えることも可能なので
ページ内の一部のみ表示を変える場合は条件毎に読み込むパーツを変える等の処理で良いですが
全く構成を変えたい場合は専用のテンプレートを作ったほうが管理は楽です。

WordPressのシステム上、front-page.phpとhome.phpは取り扱いが少し違うのですが、
インデックスページを表示させるテンプレートには違いないので優先順位が分かりやすいよう同じ枠に入れています。

テンプレートの読み込み処理は

wp-includes/template.php

で行われていて、各テンプレートについて上記の表の内容やコメントを記載されているので(英語ですが)
興味がある人は一度見てみると良いかもです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください