WordPressのテンプレート階層
WordPressのテーマは、Webサイトのデザインを変更し、見た目や操作性をコントロールできるようにするものです。
WordPress テーマを深く掘り下げる前に、WordPress がどのように動作し、Web サイトのさまざまなページがどのように作成されるかを理解しておくことが重要です。 WordPress はデータベースと連動して、コンテンツを保存します。 つまり、新しい投稿やページを作成するたびに、投稿やページのコンテンツはデータベースに保存され、訪問者がその特定のコンテンツを要求したときにのみ、テンプレートを使用して表示されます。
WordPress テーマは、WordPress がデータベース コンテンツの表示に使用するテンプレート (CSS および PHP ファイル) のコレクションです。 WordPress は、現在のページを特定の順序でレンダリングするために使用する、テーマ内のファイルを探します。 これは「テンプレート階層」と呼ばれ、WordPress テーマの作成と拡張に使用されます。
WordPressテーマは、コンテンツがWebサイトにどのように表示されるかを決定します。 WordPress のテンプレートは、Web サイトのフロントエンドで特定のページまたは一連のページがどのように見えるかを決定する 1 つのファイルです。 テーマを変更すると、コンテンツ自体を変更することなく、コンテンツの表示方法を変更することになります。
WordPress のテーマは、完全な Web ページを生成するために、異なるテンプレート ファイルを使用します。 たとえば、WordPress の Web サイトにアクセスすると、実際には複数の異なるテンプレート ファイルが組み合わされて 1 つの完全なページが作成されているのを見ることができます。
たとえば、ブログのフロント ページなどのインデックス ページを見ると、通常は header.php
テンプレートで作成されたヘッダー、index.php
で作成されたコンテンツ、そして
で作成されたページが表示されます。 サイドバーは sidebar.php
で、フッターは footer.php
しかし、単一ページにアクセスした場合、同じヘッダー、同じサイドバー、同じフッターが表示されても、コンテンツは single.php
で作成されていることになるのです。 問題は、これらのテンプレートファイルのうち、どのファイルがどの時点で起動するのか、どうやって知ることができるのかということです。 WordPress のテンプレート階層は、WordPress テーマ内でテンプレート ファイルが読み込まれる順序を決定します。 WordPress はこれらのファイルを検索して、サイトの読み込み方法を決定します。
「Twenty Fifteen」(デフォルトの WordPress テーマの 1 つ)のテーマ フォルダーを開くと、15 個以上のテンプレート ファイルがあります。 これらには、404、アーカイブ、著者バイオ、コメント、コンテンツ リンクのテンプレート ファイルが含まれています。 WordPress は、Web サイトの各リンクに含まれるクエリ ストリング情報を使用して、どのテンプレートまたはテンプレート セットを使用してページを表示するかを決定します。
WordPressは、要求されたページのタイプ(たとえば検索ページ、カテゴリ ページ、ホームページ)を判断し、WordPress テンプレート階層が提案する適切なテンプレートを選択し、コンテンツを生成します。
命名規則
WordPress にはテーマ ファイルに関連する特別で厳格な命名規則があり、すべてのテーマはバックエンドでかなり共通した名前のファイル セットを共有します。 たとえば、コンテンツを簡単に管理するために、header.php
と footer.php
ファイルを作成することができます。 これらのテンプレート ファイルの名前は header.php
および footer.php
でなければなりません。
WordPress は現在のテーマのディレクトリで特定の名前のテンプレート ファイルを探して、使用するテンプレートを決定しますが、最も一般的には最初に一致したテンプレート ファイルが使用されます。 WordPress は、一致する名前のテンプレート ファイルが見つからない場合、階層内の次のファイル名までスキップします。
ですから、テンプレートファイルを編集するときは、これがどのような種類のコンテンツであるかを考え、その種類のコンテンツに適したテンプレートファイルを編集する必要があるのです。
テーマの最小要件
WordPressのテーマが動作するために必要なファイルは、index.php
とstyle.css
だけです。 index.php
は、サイトの構造と同様に、すべての WordPress クエリを処理する主要かつ唯一のファイルです。
WordPressテーマが動作し、有効化のためにWordPressダッシュボードで表示されるために必要な最小限のファイルは、index.php
と style.css
です。
index.php
またはstyle.css
がない場合、以下のエラーが表示されます。
-
style.css
(必須) -
index.php
(必須) -
functions.php
(任意) -
screenshot.png
(任意)
この分離によって効率が大幅にアップするのである。 すべてを 1 つの大きな単一ファイル index.php
にまとめることは技術的にはうまくいくかもしれませんが、美しくはありませんし、将来的に果てしない問題を引き起こすでしょう。 また、テーマの編集は悪夢となるでしょう!
以下は、WordPress によって認識されるテーマ ファイルのリストです。
-
style.css
-
rtl.css
-
index.php
-
comments.php
-
front-page.php
-
single.php
-
page.php
-
author.php
-
archive.php
その他多数のファイルが存在します。 詳しくは、テンプレートファイル一覧をご覧ください。
Twenty Fifteen テンプレート階層の例
あなたが Twenty Fifteen テーマを有効にしていて、ユーザーがページ yoursite.com/author/tahir/
を訪れたとします。 まず、WordPress は author-tahir.php
というラベルのついたテンプレートを探しますが、author-tahir.php
は利用できません。 次にWordPressはauthor.php
を探しますが、これも存在しない場合はarchive.php
を探します。 このファイルはTwenty Fifteenテーマで利用可能です。 archive.php
を削除するか名前を変更すると、WordPress は index.php
を使用してページを表示します。
ユーザーがウェブサイトにアクセスするたびに、WordPress は一致するテンプレートファイルを見つけるまでテンプレート階層を移動していきます。 これは、これらのファイルがどのように名付けられているかに関係しています。
The ‘What The File’ Plugin
現在表示しているページ コンテンツを表示するのに WordPress がどのファイルとテンプレートを使用しているかを調べるには、非常に便利な What The File プラグインを使用できます。 これは Barry Kooij 氏が開発した無料のプラグインです。
このプラグインは、ツールバーに、どのファイルとテンプレートが使用されているかを示すオプションを追加します。 私はテスト目的で「What The File Plugin」をローカル サーバーにインストールしましたが、素晴らしい働きをすることがわかりました。
特定のファイルが利用できない場合に WordPress が使用するファイルをテストするために、(Twenty Fifteen テーマの)2 つのファイルの名前を変更しました。 下のスクリーンショットでは、WordPress がコンテンツの表示にどのファイルを使用するかを見ることができます。
Twenty Fifteen テーマが検索結果を表示するのに content-search.php
ファイルを使用することがわかります。 content-search.php
を削除するか名前を変更すると、WordPress は content.php
を使用して検索結果を表示します。
‘What The File’ プラグインは、ファイル名を直接クリックして、テーマエディタを通じて編集することもできます。 このプラグインは WordPress 3.1 以上が必要です。WordPress 4.1 でも問題なく動作しました。
Useful Resources
(参考)