Иерархия шаблонов: запутано с index.php, front-page.php, home.php

Я действительно запутался с 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.

26 голосов | спросил Mayeenul Islam 17 AM000000120000000531 2013, 00:07:05

6 ответов


17

Логика главной страницы - одна из самых запутанных функций в WordPress, и ее чрезвычайно сложно объяснить и обобщить. Как упоминалось в комментарии, назад я сжег нечестивое количество времени, чтобы собрать мой чит-логику главной страницы лист для него.

Но так как это популярный поток, я попытаюсь ответить на те самые конкретные вопросы, которые у вас были.

  

В чем разница между home.php и index.php?

home.php является шаблоном для индекса сообщений (архив типа Post Post Post, который является частным случаем в WP). WP попытается найти его для индекса сообщений, независимо от того, отображаются ли они в корневом каталоге сайта или на отдельной странице сообщений.

index.php - это весь шаблон. Это окончательный выбор во всех ветвях иерархии шаблонов и будет выбран, когда ничего не подходит для архивов и особых представлений.

Только индекс сообщений может использовать home.php, но all другие контексты могут и будут использовать index.php.

  

Какое идеальное условие для использования home.php, чем index.php

Для настройки индекса сообщений используется home.php.

Вы используете index.php, чтобы предоставить наиболее общий шаблон в своей теме, подходящий для отображения всего.

В некоторых темах выберите пустой index.php и убедитесь, что у них есть более конкретные шаблоны для всех возможных случаев, поэтому его никогда не нужно использовать.

  

Какое идеальное условие для использования front-page.php?

front-page.php используется для индексации сообщений на начальной или стартовой странице root, если включен.

Это шаблон с высоким приоритетом, поэтому, если у него есть тема, вы не можете выбрать произвольный шаблон для статической главной страницы. По этой причине он почти никогда не включается в публично выпущенные темы (что правильно).

Лучше всего использовать его в частных проектах, так как его легче настроить, чем шаблон страницы.

  

Когда я использую front-page.php, то какая конкретная задача для меня выполняет index.php?

index.php - еще шаблон catch для всех остальных случаев.

Если вы используете статическую переднюю страницу (к которой применяется front-page.php), то ваша страница сообщений будет пытаться использовать home.php, а затем index.php.

ответил Rarst 26 PM00000070000002131 2016, 19:31:21
20

Файл 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
  • Если '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
ответил Chip Bennett 17 AM000000120000003431 2013, 00:22:34
16

Все это происходит из тщательного чтения иерархии шаблонов .

home.php используется, если:

  • На первой странице вашего сайта будет отображаться список сообщений или
  • И тема имеет файл home.php

Если последнее условие не выполняется, т. е. в теме отсутствует файл home.php, а затем будет загружен index.php.

front-page.php будет использоваться, если:

Если последнее условие не выполнено, т. е. в теме нет файла front-page.php, а затем будет загружен index.php .

В заключение

Если вы хотите настроить свой список сообщений, используйте home.php.
Если вы хотите настроить статическую домашнюю страницу, используйте front-page.php.

ответил Pat J 17 AM000000120000002331 2013, 00:14:23
10

Короче:

  • 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 предназначено для размещения раздела Блог .

Какой шаблон будет использоваться для целевой страницы моего сайта?

Шаблон 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 , в разделе Инструменты> Чтение , вы можете настроить « Front page display », чтобы показать статическую страницу или ваши последние сообщения.

В случае, когда вы выбираете статическую страницу на первой странице, у вас также есть возможность указать, какую страницу использовать в качестве заполнителя для страницы блога (которая будет использовать home.php):

введите описание изображения здесь>> </p></body></html>

ответил asked Feb 12 '12 21 AM000000110000004131 2013, 11:18:41
3

взято из иерархии шаблонов Wordpress

  

Отображение главной страницы

     

По умолчанию WordPress устанавливает домашнюю страницу вашего сайта, чтобы отобразить   последние сообщения в блоге. Эта страница называется индексом постов блога. Ты можешь   также установите свои сообщения в блоге для отображения на отдельной статической странице.   Файл шаблона home.php используется для отображения индекса блога, независимо от того,   он используется как первая страница или отдельная статическая страница. Если   home.php не существует, WordPress будет использовать index.php.

     
  1. home.php
  2.   
  3. index.php
  4.   
    

Примечание. Если front-page.php существует, он переопределит шаблон home.php.

  
     

Отображение передней страницы

     

Файл шаблона front-page.php используется для рендеринга вашего сайта   страницы, показывает ли на первой странице индекс сообщений блога (упомянутый   выше) или статической страницы. Шаблон главной страницы имеет приоритет над   шаблон индекса сообщений блога (home.php). Если файл front-page.php   не существует, WordPress будет либо использовать home.php или page.php   файлов в зависимости от настроек в настройках â † 'Чтение. Если ни один из   эти файлы существуют, он будет использовать файл index.php.

     

1. front-page.php . Используется как для ваших последних сообщений, так и для статических страниц.   как установлено на первой странице, отображает раздел настроек â † 'Reading.

     

2. home.php . Если WordPress не может найти front-page.php и «ваш последний   postsâ € задается в разделе отображения на первой странице, он будет искать   home.php. Кроме того, WordPress будет искать этот файл, если   страница сообщений задается в разделе отображения на первой странице.

     

3. page.php - Когда   «Первая страница» установлена ​​в разделе отображения на первой странице.

     

4. index.php   Когда «ваши последние посты» установлены в разделе отображения на первой странице, но   home.php не существует или когда установлена ​​первая страница, но page.php делает   не существует.

     

Как вы можете видеть, существует множество правил того, какой путь   WordPress берет. Использование диаграммы выше - лучший способ определить   что WordPress будет отображать.

Диаграмма иерархии шаблонов: Иерархия шаблонов Wordpress

ответил samix73 7 62015vEurope/Moscow11bEurope/MoscowSat, 07 Nov 2015 23:39:48 +0300 2015, 23:39:48
1

Я решил проверить, какой шаблон используется для каждой из следующих страниц при настройке различных параметров Front page.

  • example.net
  • example.net/home /
  • example.net/blog /

Результаты довольно длинные, но могут использоваться как ссылочные или обманные листы.

 Отображение главной страницы

Источник: Как шаблоны front-page.php и home.php отличаются в WordPress?

Примечание для редактора: Я пытался копировать и вставлять таблицы здесь, но вместо HTML требуется формат уценки. Пожалуйста, конвертируйте в уценку, если сможете.

ответил henrywright 25 AMpTue, 25 Apr 2017 04:26:27 +030026Tuesday 2017, 04:26:27

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132