テンプレート階層:index.php、front-page.php、home.phpと混同
-
-
これで@rarstを手に入れました:https://www.rarst.net/wordpress/front-page-logic/.あなたを助けるかもしれません.Got @rarst with this: https://www.rarst.net/wordpress/front-page-logic/. May help you.
- 1
- 2016-05-17
- Mayeenul Islam
-
6 回答
- 投票
-
- 2016-08-26
フロントページロジックはWordPressで最も紛らわしい機能の1つであり、説明や要約が非常に困難です.コメントで述べたように、私は
フロントページのロジックチートをまとめるために非常に長い時間を費やしましたそのためのシート. しかし、これは人気のあるスレッドなので、あなたが持っていた非常に具体的な質問に答えてみましょう.
home.php
とindex.php
の違いは何ですか?home.php
は、投稿インデックスのテンプレートです(WPの特殊なケースであるネイティブの投稿投稿タイプのアーカイブ). WPは、サイトのルートに表示されているか、専用の投稿ページに表示されているかに関係なく、投稿のインデックスを検索しようとします.index.php
はキャッチオールテンプレートです.これは、テンプレート階層のすべてのブランチでの最終的な選択であり、アーカイブと単一のビューの両方で、他に何も適合しない場合に選択されます.投稿インデックスのみが
home.php
を使用できますが、他のすべてのコンテキストはindex.php
を使用する可能性があります.index.php
home.php
を使用するのに理想的な条件は何ですかhome.php
を使用して投稿のインデックスをカスタマイズします.index.php
を使用して、テーマ内で最も一般的なテンプレートを提供し、あらゆるものの表示に適しています.一部のテーマは、空の
index.php
を選択し、考えられるすべてのケースに対してより具体的なテンプレートがあることを確認するため、使用する必要はありません.front-page.php
を使用するための理想的な条件は何ですか?front-page.php
は、ルートまたは静的フロントページ(有効な場合)の投稿インデックスに使用されます.優先度の高いテンプレートであるため、テーマに含まれている場合、静的フロントページに任意のテンプレートを選択することはできません.このため、公開されているテーマに含まれることはほとんどありません(これは正しいです).
ページテンプレートよりも設定が簡単なため、プライベートプロジェクトでの使用が最適です.
front-page.php
を使用している場合、index.php
が実行している特定のタスクは何ですか?index.php
はまだ他のすべての場合のキャッチオールテンプレートです.静的フロントページ(
front-page.php
が適用される)を使用する場合、投稿ページはhome.php
を使用してからindex.php
.Front page logic is one of the most confusing features in WordPress and is exceptionally hard to explain and summarize. As mentioned in comment while back I burnt unholy amount of time to put together my front page logic cheat sheet for it.
But since this is a popular thread let me try to answer those very specific questions you had.
What's the difference between the
home.php
andindex.php
?home.php
is template for posts index (archive of native Post post type, which is a special case in WP). WP will attempt to look it up for index of posts, whether they are displayed at the root of the site or at dedicated posts page.index.php
is catch–all template. It is final choices in all branches of template hierarchy and will be picked when nothing else fits, for both archives and singular views.Only posts index can use
home.php
, but all other contexts might and will useindex.php
.What's the ideal condition to use a
home.php
than anindex.php
You use
home.php
to customize posts index.You use
index.php
to provide the most generic template in your theme, suitable for display of anything.Some themes choose to have empty
index.php
and ensure they have more specific templates for all possible cases, so it never has to be used.What's the ideal condition to use a
front-page.php
?front-page.php
is used for posts index at the root or static front page, if enabled.It is a high priority template, so if theme has it you cannot select arbitrary template for static front page. For this reason it is almost never included in publicly released themes (which is correct).
The best use for it is in private projects, since it's easier to configure than page template.
When I'm using a
front-page.php
then what specific task anindex.php
is doing for me then?index.php
is still a catch all template for all other cases.If you use static front page (to which
front-page.php
will apply) then your posts page will try to usehome.php
and thenindex.php
. -
- 2013-08-16
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
ファイルは、のすべてのコンテキストのデフォルトのフォールバックテンプレートです.テンプレート階層.現在のコンテキストに対してより具体的なテンプレートファイルが存在しない場合にのみ使用されます. サイトフロントページのテンプレート階層は次のとおりです.
-
front-page.php
- If
'page'==get_option( 'show_on_front')
:ページ階層 - If
'posts'==get_option( 'show_on_front')
:ブログ投稿のインデックス階層
ブログ投稿インデックスのテンプレート階層は次のとおりです.
-
home.php
-
index.php
ページのテンプレート階層は次のとおりです.
- カスタムページテンプレート
-
ページ-{slug} .php
-
ページ-{id} .php
-
page.php
-
index.php
The
front-page.php
file is the site front page template. It will always be used on your site front page, regardless of whetherget_option( 'show_on_front' )
is set topage
orposts
.The
home.php
template file is the blog posts index template. It will always be used to display your blog posts index, regardless of whether the blog posts index is displayed on the site front page, or on a different page.In the case that both
front-page.php
andhome.hpp
exist, and theget_option( 'show_on_front' )
is set toposts
(i.e., the site front page displays the blog posts index), thefront-page.php
file will take precedence over thehome.php
file.The
index.php
file is the default fallback template for all contexts in the Template Hierarchy. It is only ever used if a more-specific template file does not exist for the current context.The template hierarchy for the site front page is:
front-page.php
- If
'page' == get_option( 'show_on_front' )
: page hierarchy - If
'posts' == get_option( 'show_on_front' )
: blog posts index hierarchy
The template hierarchy for the blog posts index is:
home.php
index.php
The template hierarchy for pages is:
- Custom page template
page-{slug}.php
page-{id}.php
page.php
index.php
-
したがって、これが正しく行われている場合、フロントページが最新の投稿に設定されている場合は `my-template-1`テンプレートを使用できず、フロントページが静的ページに設定されている場合は`my-template-2`を使用できません.(コーディングなし)?So, if i'm getting this right, it's not possible to use `my-template-1` template when the front page is set to latest posts and use `my-template-2` when the front is set to an static page (without coding) ?
- 0
- 2017-05-30
- Jack Johansson
-
- 2013-08-16
これはすべて、
テンプレート階層をよく読んだことによるものです. 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
を使用してください.All this comes from a thorough reading of the Template Hierarchy.
home.php
is used if:- Your site's front page is set to display a list of posts, or
- A static front page is set, and
- A visitor goes to the page that you've defined as your "list of posts" (eg,
http://example.com/blog/
)
- And the theme has a
home.php
file
If the last condition isn't met -- ie, there is no
home.php
file in the theme -- thenindex.php
will be loaded.front-page.php
will be used if:- A static front page is set, and
- A visitor goes to the page that you've defined as your "static home page" (ie,
http://example.com/
), and - The theme has a
front-page.php
file
If the last condition isn't met -- ie, there is no
front-page.php
file in the theme -- thenindex.php
will be loaded.In summary
If you want to customize your list of posts, use
home.php
.
If you want to customize your static home page, usefront-page.php
.-
`home.php`は、場所に関係なく、ブログ投稿のインデックスに使用されます.フロントページがブログ投稿インデックスを表示するように設定されている場合、 `home.php`が使用されます(`front-page.php`が存在しない場合).`home.php` will be used for the blog posts index, regardless of location. If the front page is set to display the blog posts index, then `home.php` will be used (if `front-page.php` does not exist).
- 2
- 2013-08-16
- Chip Bennett
-
- 2013-08-21
要するに:
-
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
とhome.php
front-page.php
テンプレートとhome.php
テンプレートの違いは、front-page.php
が次のように使用されることです.その名前は、サイトのメインのフロントページとして、home.php
がブログセクションのホームになることを目的としていることを示唆しています.サイトのランディングページに使用されるテンプレートは何ですか?
front-page.php
テンプレートが存在する場合は、サイトのメインフロントページに使用されます(例:http://www.example.com/
) .存在しない場合は、代わりにhome.php
が使用されます.front-page.php
とhome.php
の両方のテンプレートファイルがない場合は、index.php
フォールバックテンプレートが使用されます.ブログページに使用されるテンプレートは何ですか?
WordPressを使用すると、ランディングページ(例:
http://www.example.com)とは異なるページに「ブログ」ページ(最近の投稿を一覧表示)を表示できます./blog/
).したがって、これがサイトに当てはまる場合、ブログページは常にhome.php
テンプレートを使用します.home.php
が存在しない場合は、index.php
フォールバックテンプレートが使用されます.ランディングページとブログページを構成するにはどうすればよいですか?
フロントページに表示するコンテンツを構成するには、 WordPress管理者に移動します.ツール>閲覧の下で、「フロントページ」を構成できます. "を表示して、静的なページまたは最新の投稿を表示します.
フロントページに静的ページを表示することを選択した場合は、ブログページのプレースホルダーとして使用するページを設定することもできます(
home.php を使用します).コード>テンプレート):
In short:
index.php
is a fallback template only, in case no appropriate template was foundhome.php
is used for the blog (a listing of recent posts)front-page.php
is used for the landing-page
The universal
index.php
templateThe
index.php
template file is a fallback template. It is used as a last resort when no other more appropriate template is available. For example, if you don't have afront-page.php
nor ahome.php
thenindex.php
will be used. This is also true for missingarchive.php
orsingle.php
and so on.Regarding
front-page.php
VShome.php
Now the difference between
front-page.php
andhome.php
templates is that thefront-page.php
is used, as its name suggests, as the main front-page of the site, whilehome.php
is intended to be the home of the Blog section.What template will be used for my site's landing-page?
The
front-page.php
template, if present, will be used for the site's main front page (e.g.http://www.example.com/
). If not present, thenhome.php
will be used instead. If both thefront-page.php
andhome.php
template files are missing then theindex.php
fallback template will be used.What template will be used for my blog page?
WordPress allows you to have a "Blog" page (which will list recent posts) on a different page than the landing-page (e.g.
http://www.example.com/blog/
). So if this is the case on your site, then the Blog page will always use thehome.php
template. Ifhome.php
doesn't exist then theindex.php
fallback template will be used.How to configure the landing-page and blog page?
To configure what content to show on your front page, go to the WordPress Admin, under Tools > Reading, there you can configure the "Front page displays" to show a static page, or your latest posts.
In the case you choose to display a static page on the front page, then you also have the possibility to set which page to use as a placeholder for the Blog page (which will use the
home.php
template): -
- 2015-11-07
から取得ホームページの表示
デフォルトでは、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が表示するもの.
taken from Wordpress template hierarchy
Home Page display
By default, WordPress sets your site’s home page to display your latest blog posts. This page is called the blog posts index. You can also set your blog posts to display on a separate static page. The template file home.php is used to render the blog posts index, whether it is being used as the front page or on separate static page. If home.php does not exist, WordPress will use index.php.
- home.php
- index.php
Note: If front-page.php exists, it will override the home.php template.
Front Page display
The front-page.php template file is used to render your site’s front page, whether the front page displays the blog posts index (mentioned above) or a static page. The front page template takes precedence over the blog posts index (home.php) template. If the front-page.php file does not exist, WordPress will either use the home.php or page.php files depending on the setup in Settings → Reading. If neither of those files exist, it will use the index.php file.
1. front-page.php – Used for both “your latest posts” or “a static page” as set in the front page displays section of Settings → Reading.
2. home.php – If WordPress cannot find front-page.php and “your latest posts” is set in the front page displays section, it will look for home.php. Additionally, WordPress will look for this file when the posts page is set in the front page displays section.
3. page.php – When “front page” is set in the front page displays section.
4. index.php – When “your latest posts” is set in the front page displays section but home.php does not exist or when front page is set but page.php does not exist.
As you can see, there are a lot of rules to what path WordPress takes. Using the chart above is the best way to determine what WordPress will display.
-
- 2017-04-25
さまざまなフロントページの表示オプションが設定されている場合、次の各ページでどのテンプレートが使用されるかをテストすることにしました.
- example.net
- example.net/home/
- example.net/blog/
結果は非常に長いですが、参照またはチートシートとして使用できます.
出典:front-page.phpテンプレートとhome.phpテンプレートはWordPressでどのように異なりますか?
編集者への注意:ここにテーブルをコピーして貼り付けようとしましたが、HTMLの代わりにマークダウン形式が必要です.可能であれば、マークダウンに変換してください.
I decided to test which template is used for each of the following pages when the various Front page displays options are set.
- example.net
- example.net/home/
- example.net/blog/
The results are quite long, but can be used as a reference or cheat-sheet.
Source: How do the front-page.php and home.php templates differ in WordPress?
Note to editor: I tried to copy and paste the tables here but markdown format is required instead of HTML. Please convert to markdown if you can.
index.php
、home.php
、front-page.php
と本当に混同しています.多くの場合、index.php
を持っていても、front-page.php
で上書きします.しかし最近、私はhome.php
について気づきました.home.php
とindex.php
の違いは何ですか?index.php
よりもhome.php
を使用するのに理想的な条件は何ですか?front-page.php
を使用するための理想的な条件は何ですか?front-page.php
を使用している場合、index.php
が実行している特定のタスクは何ですか?Codexのテンプレート階層を読みました.私の質問をページテンプレートと混同しないでください、私は理解しています、alHamduLILLAH.