Сегодня речь пойдет об архивах записей, а точнее о файлах archive.php, Category.php и Tag.php, в рамках серии о создании темы WordPress с нуля. Это будет довольно короткая и простая статья, потому что эти файлы шаблонов очень незамысловаты. Как вы уже знаете, WordPress позволяет добавлять рубрики и метки для записей. Когда вы нажимаете на определенную метку или рубрику, они отображают все записи, которые находятся в этой конкретной категории или тэге.
archive.php
Нам нужно создать два файла шаблонов, которые расскажут WordPress, как вы хотите, чтобы эти отфильтрованные сообщения рубрик и сообщения меток отображались.
Более глобально за отображение рубрик и меток отвечает файл archive.php. Но если вы хотите, чтобы страница категории и страница тэгов отображались по разному, нужно для них создавать отдельный шаблон.
Давайте посмотрим, как выглядит страница меток и рубрик на сайте сейчас, когда используется файл по умолчанию archive.php.
Создадим рубрику под названием «Первая рубрика» и поместим в нее запись номер 1. И создадим еще пару записей в этой рубрике для наглядности.
Вот так будет выглядеть страница сайта, если посетитель захочет просмотреть все записи данной рубрики:
Создадим для записей несколько меток и посмотрим, что будет, если посетитель захочет посмотреть все записи с данной меткой.
Как видим, выглядят они одинаково. Если вы выберете все записи одного автора, также будет использоваться файл archive.php.
Category.php
Давайте создадим шаблон только для рубрик, чтобы при выводе записей одной категории страница выглядела иначе. Для этого нужно создать в корне темы файл по названием Category.php.
Добавим в него свой код
Как видим, теперь страница категории выглядит иначе, при этом страница меток не изменилась.
Аналогично, можно изменить внешний вид и для вывода записей по метке, создав файл tag.php, а также изменить внешний вид страницы записей автора, создав файл author.php.
Цикл
На что следует обратить внимание в коде!
Первое, что вы заметите, это то, что оператор if был отделен от оператора while. Это правильная процедура для этих двух файлов шаблонов, потому что нам нужно сказать «если есть записи», а затем нам нужно использовать две новые функции, которых мы еще не коснулись. Для Category.php мы будем использовать:
single_cat_title (); — функция, которая будет запрашивать/отображать имя конкретной рубрики, которая была выбрана/нажата. По сути, мы хотим иметь заголовок в верхней части страницы, который говорит «Вот сообщения в данной категории». В приведенном выше примере я использую фразу » Все записи рубрики:».
Все это также относится и к tag.php. Но здесь мы используем функцию single_tag_title(); вместо single_cat_title();.