WordPressのテンプレート階層

6月 30, 2021
admin

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

A Basic WordPress Theme

しかし、単一ページにアクセスした場合、同じヘッダー、同じサイドバー、同じフッターが表示されても、コンテンツは single.php で作成されていることになるのです。 問題は、これらのテンプレートファイルのうち、どのファイルがどの時点で起動するのか、どうやって知ることができるのかということです。 WordPress のテンプレート階層は、WordPress テーマ内でテンプレート ファイルが読み込まれる順序を決定します。 WordPress はこれらのファイルを検索して、サイトの読み込み方法を決定します。

「Twenty Fifteen」(デフォルトの WordPress テーマの 1 つ)のテーマ フォルダーを開くと、15 個以上のテンプレート ファイルがあります。 これらには、404、アーカイブ、著者バイオ、コメント、コンテンツ リンクのテンプレート ファイルが含まれています。 WordPress は、Web サイトの各リンクに含まれるクエリ ストリング情報を使用して、どのテンプレートまたはテンプレート セットを使用してページを表示するかを決定します。

WordPressは、要求されたページのタイプ(たとえば検索ページ、カテゴリ ページ、ホームページ)を判断し、WordPress テンプレート階層が提案する適切なテンプレートを選択し、コンテンツを生成します。

命名規則

WordPress にはテーマ ファイルに関連する特別で厳格な命名規則があり、すべてのテーマはバックエンドでかなり共通した名前のファイル セットを共有します。 たとえば、コンテンツを簡単に管理するために、header.phpfooter.php ファイルを作成することができます。 これらのテンプレート ファイルの名前は header.php および footer.php でなければなりません。

WordPress は現在のテーマのディレクトリで特定の名前のテンプレート ファイルを探して、使用するテンプレートを決定しますが、最も一般的には最初に一致したテンプレート ファイルが使用されます。 WordPress は、一致する名前のテンプレート ファイルが見つからない場合、階層内の次のファイル名までスキップします。

ですから、テンプレートファイルを編集するときは、これがどのような種類のコンテンツであるかを考え、その種類のコンテンツに適したテンプレートファイルを編集する必要があるのです。

テーマの最小要件

WordPressのテーマが動作するために必要なファイルは、index.phpstyle.cssだけです。 index.php は、サイトの構造と同様に、すべての WordPress クエリを処理する主要かつ唯一のファイルです。

WordPressテーマが動作し、有効化のためにWordPressダッシュボードで表示されるために必要な最小限のファイルは、index.phpstyle.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 がコンテンツの表示にどのファイルを使用するかを見ることができます。

The What The File Plugin

Twenty Fifteen テーマが検索結果を表示するのに content-search.php ファイルを使用することがわかります。 content-search.php を削除するか名前を変更すると、WordPress は content.php を使用して検索結果を表示します。

‘What The File’ プラグインは、ファイル名を直接クリックして、テーマエディタを通じて編集することもできます。 このプラグインは WordPress 3.1 以上が必要です。WordPress 4.1 でも問題なく動作しました。

Useful Resources

(参考)

コメントを残す

メールアドレスが公開されることはありません。