Если я создам файл home.php, кажется, что WP будет использовать его вместо index.php, поэтому index.php никогда не используется?
В чем разница между этими двумя файлами шаблонов (находятся в папке темы)? Они оба ведут себя одинаково, с той лишь разницей, что приоритет home.php?
index.php
является универсальным шаблоном, это то, что будет использовать любая страница (домашняя, архивная, отдельная запись и т. д.), если для нее не доступен другой шаблон.home.php
это шаблон, используемый для состояния главной страницы (включеноis_home()
).Подробную схему применения шаблонов см. в разделе Иерархия шаблонов.
Вы можете это объяснить? Обычно вы можете получить все категории в файле
home.php
. Шаблон будет выбран задолго до того, как будет сделан запрос к БД.Да, но если попробовать реализовать такую структуру сайта: 1. Главная страница -> home.php/ 2. Новости -> index.php/ 3. Категория поста 1 -> category.php… то нет возможности показывать сообщения из всех категорий (роль, которую выполняет index.php), за исключением создания статической страницы, отдельного шаблона страницы для нее и получения сообщения через отдельный запрос в этом шаблоне. Если мы попытаемся сделать прямую ссылку на index.php, это, очевидно, перенаправит нас на страницу, разработанную home.php, потому что теперь она установлена как главная страница блога.
это шаблон для последних сообщений в блогах из всех категорий.
Для чего тогда нужен index.php?
Это резервный файл на случай, если какой-либо другой файл отсутствует. Единственный файл, который не перехватывается этим запасным вариантом, — это файл
comments.php
.home.php
это то, что ваш сайт будет использовать для любой страницы, которую вы установите как «Страница сообщений» в параметрах чтения в wp-admin. Если вы установите статическую страницу на первую страницу, вы должны использоватьfront-page.php
, если хотите, чтобы она была оформлена особым образом.Имейте в виду, что использование home.php вместо index.php в качестве главной страницы запретит обычную страницу сообщений из всех категорий в вашем блоге. Другими словами, нет простого способа добраться до index.php, если вы используете home.php.