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