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