私は本当にindex.php
、home.php
そしてfront-page.php
と混同しています。多くの場合、index.php
を持っていても、それをfront-page.php
で上書きします。しかし、最近、私はhome.php
を知ったようになりました。
home.php
とindex.php
の違いは何ですか?home.php
よりindex.php
を使用するのに理想的な条件は何ですか?front-page.php
を使うのに理想的な条件は何ですか?front-page.php
を使っているとき、index.php
が私にしている特定のタスクは何ですか?Codexの Template Hierarchy を読んだことがあります。私の質問とPage Templatesを混同しないでください、私は理解しています、alHamduLILLAH.
フロントページロジックは、WordPressの最も分かりにくい機能の1つであり、説明や要約が非常に難しいです。後ろのコメントで述べたように、私は自分の フロントページロジックのチートシートをまとめるために不屈の時間を費やしました それのために。
しかし、これは一般的なスレッドなので、私があなたが持っていたそれらの非常に具体的な質問に答えようとしましょう。
home.php
とindex.php
の違いは何ですか?
home.php
は投稿インデックスのテンプレートです(ネイティブの投稿投稿タイプのアーカイブ。これはWPの特別な場合です)。 WPは、投稿がサイトのルートに表示されているか、専用の投稿ページに表示されているかに関係なく、投稿のインデックスを検索しようとします。
index.php
は包括的なテンプレートです。これはテンプレート階層のすべての分岐における最終的な選択であり、アーカイブと特異ビューの両方に対して、他に何も当てはまらない場合に選択されます。
home.php
を使用できるのはpostsインデックスだけですが、 all 他のコンテキストではindex.php
が使用される可能性があり、今後も使用される予定です。
home.php
よりindex.php
を使う理想的な条件は何ですか?
投稿のインデックスをカスタマイズするにはhome.php
を使います。
index.php
を使用して、テーマの中で最も一般的なテンプレートを提供します。これは、あらゆるものの表示に適しています。
いくつかのテーマは空のindex.php
を持つことを選択し、それらがすべての可能なケースに対してより具体的なテンプレートを持つようにしているので、決して使われる必要はありません。
front-page.php
を使うのに理想的な条件は何ですか?
有効な場合、front-page.php
はルートまたは静的フロントページの投稿インデックスに使用されます。
優先度の高いテンプレートなので、themeが持っていれば静的フロントページに任意のテンプレートを選択することはできません。このため、それは公に発表されたテーマには含まれていません(これは正しいです)。
ページテンプレートよりも設定が簡単なので、これを使用するのがプライベートプロジェクトです。
私が
front-page.php
を使っているとき、index.php
が私にしている特定のタスクは何ですか?
index.php
は それでも 他のすべてのケースではall allテンプレートです。
静的なフロントページ(front-page.php
が適用される)を使用している場合、投稿ページはhome.php
を使用してからindex.php
を使用しようとします。
front-page.php
ファイルは サイトのフロントページ テンプレートです。 get_option( 'show_on_front' )
がpage
に設定されているかposts
に設定されているかにかかわらず、常にあなたのサイトのフロントページで使用されます。
home.php
テンプレートファイルは ブログ投稿インデックス テンプレートです。ブログ投稿インデックスがサイトのフロントページに表示されているか、別のページに表示されているかに関係なく、常にブログ投稿インデックスの表示に使用されます。
front-page.php
とhome.hpp
の両方が存在し、get_option( 'show_on_front' )
がposts
に設定されている(つまり、サイトのフロントページにブログ投稿インデックスが表示されている)場合、front-page.php
ファイルがhome.php
ファイルよりも優先されます。
index.php
ファイルは、 Template Hierarchy 内のすべてのコンテキストの デフォルトフォールバックテンプレート です。より具体的なテンプレートファイルが現在のコンテキストに存在しない場合にのみ使用されます。
サイトフロントページ のテンプレート階層は次のとおりです。
front-page.php
'page' == get_option( 'show_on_front' )
:ページ階層'posts' == get_option( 'show_on_front' )
:ブログ投稿インデックス階層ブログ投稿インデックス のテンプレート階層は次のとおりです。
home.php
index.php
pages のテンプレート階層は次のとおりです。
page-{slug}.php
page-{id}.php
page.php
index.php
これらすべては テンプレート階層 の徹底的な読みから来ています。
次の場合はhome.php
が使用されます。
http://example.com/blog/
)home.php
ファイルを持っています最後の条件が満たされていない場合、つまりテーマにhome.php
ファイルがない場合 - index.php
がロードされます。
次の場合はfront-page.php
が使用されます。
http://example.com/
)として定義したページに行き、そしてfront-page.php
ファイルを持っています最後の条件が満たされていない場合、つまりテーマにfront-page.php
ファイルがない場合 - index.php
がロードされます。
投稿のリストをカスタマイズしたい場合は、home.php
を使用してください。
静的ホームページをカスタマイズしたい場合は、front-page.php
を使用してください。
要するに:
index.php
は代替テンプレートのみです。home.php
はブログに使用されます(最近の投稿のリスト)front-page.php
が使用されていますindex.php
テンプレートindex.php
テンプレートファイルは代替テンプレートです。他の適切なテンプレートが利用できない場合、これは最後の手段として使用されます。たとえば、front-page.php
もhome.php
もない場合は、index.php
が使用されます。これは、archive.php
やsingle.php
などがない場合も同様です。
front-page.php
VS home.php
についてfront-page.php
とhome.php
テンプレートの違いは、その名前が示すように、サイトのメインフロントページとしてfront-page.php
が使用されているのに対し、home.php
は Blog セクションのホームになることを目的としているということです。
front-page.php
テンプレートが存在する場合、それがサイトのメインフロントページに使用されます(例:http://www.example.com/
)。存在しない場合は、代わりにhome.php
が使用されます。 front-page.php
とhome.php
の両方のテンプレートファイルが見つからない場合は、index.php
の代替テンプレートが使用されます。
WordPressでは、ランディングページ(例:http://www.example.com/blog/
)よりも別のページに「ブログ」ページ(最近の投稿がリストされます)を持つことができます。あなたのサイトでこれが当てはまるなら、Blogページは常にhome.php
テンプレートを使うでしょう。 home.php
が存在しない場合は、index.php
代替テンプレートが使用されます。
あなたのフロントページに表示するコンテンツを設定するには、 WordPress Admin の Tools> Reading にアクセスし、 "Front Page Displays"を設定して静的ページを表示しますページ、またはあなたの最新の投稿。
フロントページに静的なページを表示することを選択した場合は、どのページをBlogページのプレースホルダーとして使用するかを設定することもできます(これはhome.php
テンプレートを使用します)。
Wordpressテンプレートの階層構造 からの引用
ホームページ表示
デフォルトでは、WordPressはあなたのサイトのホームページにあなたの最新のブログ記事を表示するように設定します。このページはブログ投稿インデックスと呼ばれます。ブログ投稿を別の静的ページに表示するように設定することもできます。テンプレートファイルhome.phpは、ブログ投稿インデックスがフロントページとして使用されているか別の静的ページで使用されているかにかかわらず、ブログ投稿インデックスをレンダリングするために使用されます。 home.phpが存在しない場合、WordPressはindex.phpを使用します。
- home.php
- index.php
注意:front-page.phpが存在する場合、それはhome.phpテンプレートを上書きします。
フロントページ表示
Front-page.phpテンプレートファイルはあなたのサイトのフロントページをレンダリングするために使用されます。フロントページのテンプレートはブログ投稿インデックス(home.php)テンプレートよりも優先されます。 front-page.phpファイルが存在しない場合、WordPressは設定→読み取りの設定に応じてhome.phpまたはpage.phpファイルを使用します。どちらのファイルも存在しない場合は、index.phpファイルが使用されます。
1. front-page.php - [設定]→[閲覧]のフロントページ表示セクションで設定した「最新の投稿」または「静的ページ」の両方に使用されます。
2. home.php - WordPressがfront-page.phpを見つけることができず、フロントページの表示セクションに「最新の投稿」が設定されている場合は、home.phpを探します。さらに、WordPressは、投稿ページがフロントページの表示セクションに設定されているときにこのファイルを探します。
3. page.php - 表紙表示部に「表紙」を設定した場合。
4. index.php - フロントページの表示欄に「最新の投稿」が設定されているがhome.phpが存在しない、またはフロントページが設定されているがpage.phpが存在しない場合。
ご覧のとおり、WordPressがたどる道にはたくさんの規則があります。上の表を使用するのがWordPressが何を表示するかを決める最善の方法です。
さまざまなフロントページの表示オプションが設定されている場合は、次の各ページでどのテンプレートを使用するかをテストすることにしました。
結果はかなり長いですが、参考資料またはチートシートとして使用できます。
ソース: front-page.phpとhome.phpテンプレートはWordPressでどう違うのですか?
編集者へのメモ: ここにテーブルをコピーして貼り付けようとしましたが、HTMLではなくマークダウン形式が必要です。可能であれば値下げに変換してください。