Иерархия шаблонов: путают с 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,которую чрезвычайно сложно объяснить и резюмировать. Как упоминалось в комментарии,в то время как назад я потратил нечестивое количество времени,чтобы собрать свой логический чит на главной странице лист для него.
Но поскольку это популярная ветка,позвольте мне попытаться ответить на те очень конкретные вопросы,которые у вас были.
<цитата>В чем разница между
home.php
иindex.php
?home.php
- это шаблон для индекса сообщений (архив собственного типа сообщений,который является особым случаем в WP). WP попытается найти в нем индекс сообщений,независимо от того,отображаются ли они в корне сайта или на специальной странице сообщений.index.php
- универсальный шаблон. Это окончательный выбор во всех ветвях иерархии шаблонов,и он будет выбран,когда ничего не подходит,как для архивов,так и для отдельных представлений.Только индекс сообщений может использовать
<цитата>home.php
,но все другие контексты могут и будут использоватьindex.php
.Какое идеальное условие для использования
home.php
,чемindex.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')
длясообщений
(т. е. на главной странице сайта отображается индекс сообщений блога) файлfront-page.php
будет иметь приоритет над файломhome.php код> файл.
Файл
index.php
является запасным шаблоном по умолчанию для всех контекстов в Иерархия шаблонов . Он используется только в том случае,если более конкретный файл шаблона не существует для текущего контекста.Иерархия шаблонов для главной страницы сайта :
front-page.php
- Если
'page'==get_option ('show_on_front')
: иерархия страниц. - Если
'posts'==get_option ('show_on_front')
: иерархия индекса сообщений блога.
Иерархия шаблонов для индекса сообщений блога :
home.php
index.php
Иерархия шаблонов для страниц :
- Пользовательский шаблон страницы
page-{slug}.php
page-{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
VShome.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 Admin ,в разделе Инструменты> Чтение ,там вы можете настроить " Frontpage отображает "для отображения статической страницы или ваших последних сообщений.
Если вы выбрали отображение статической страницы на главной странице,у вас также есть возможность указать,какую страницу использовать в качестве заполнителя для страницы блога (которая будет использовать
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
<цитата>Отображение домашней страницы
По умолчанию 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
?home.php
,чемindex.php
?front-page.php
?front-page.php
,тогда какую конкретную задачуindex.php
выполняет для меня тогда?Я прочитал иерархию шаблонов в Codex.Пожалуйста,не путайте мой вопрос с шаблонами страниц,я их понимаю,alHamduLILLAH.