by shigemk2

当面は技術的なことしか書かない

WordPressのテンプレートの動き

テンプレート階層 - WordPress Codex 日本語版

WordPress サイト上のページにアクセスしたとき、WordPress は次のように動く。

  1. URI に含まれるクエリ文字列とクエリタイプを照合し、要求されているページの種類(メインページ、カテゴリーページなど)を判断。
  2. 該当するページ種類のテンプレート階層に基づき、現在のテーマディレクトリ内からテンプレートファイルを探す。
  3. 最初に見つかったテンプレートファイルを用いて、要求されたページを生成

カテゴリーのテンプレートファイルの例(上からサーチしていく)

  1. category-slug.php -- 特定のカテゴリー用テンプレート
  2. category-ID.php -- 特定のID用テンプレート
  3. category.php -- カテゴリーの汎用テンプレート
  4. archive.php -- 汎用アーカイブテンプレート(タグ・日別アーカイブなどと共用)
  5. index.php

例として「りんご」というカテゴリーがあったとしよう。
「りんご」カテゴリーのスラッグが 'apple' だった場合、
WordPress はまず category-apple.php というテンプレートファイルを探す。
テーマディレクトリ内にこのファイルがない場合、ID が4とすれば、category-4.php を探す。
これも見つからなければさらに category.php、次に archive.php を探す。
それもなければ、あらゆるページに使える基本のテーマテンプレートファイル index.php を使う。


またこの他にもページ種類別テンプレート階層というのがあり、
個人投稿表示や、固定ページの表示で、テンプレートファイルが動く。

個別投稿表示

  1. single-{post_type}.php - 投稿タイプ が videos の場合は single-videos.php (バージョン 3.0 以降)
  2. single.php
  3. index.php

みたいな感じで。