Этот урок – седьмой из серии, посвященной разработке темы для WordPress. Из него вы узнаете, как создать шаблон для страницы архивов archive.php.
Разобраться в том, для чего будет использоваться файл archive.php, поможет схема иерархии шаблонов. Из этой схемы следует, что шаблон архивов в теме для WordPress выводит эти страницы:
- рубрики
- метки
- архивы по датам
- архивы по авторам
- пользовательские таксономии
- архивы пользовательских типов записей
В этом руководстве я создам только один шаблон – archive.php, и все перечисленные страницы будут загружаться с его помощью. Но если вам необходимо, то можете сделать отдельные шаблоны для вывода разных типов архивов.
Шаг 1 Создаем файл archive.php
В нашей теме страница архивов будет выглядеть почти также, как главная, но вверху будет добавлено название и описание рубрики, имя автора, дата или метка. То есть, этот шаблон будет основываться на файле index.php, но с некоторыми изменениями.
Поэтому первое, что нужно сделать, это создать в папке темы копию index.php, и переименовать ее в archive.php.
Шаг 2 Добавляем заголовок и описание для рубрик
Теперь добавим на странице заголовок для рубрик. В самом начале файла archive.php, сразу после get_header
и перед while ( have_posts() )
, нужно добавить проверку, открыта ли сейчас страница рубрики. В начале файла код должен быть таким:
1
2
|
<?php get_header(); ?>
<?php while ( have_posts() ) : the_post(); ?>
|
А сейчас между первой и второй строкой, то есть до цикла вывода записей, добавим:
1
2
3
4
5
6
7
|
<h1 class=“page-title”>
<?php
if ( is_category() ) :
single_cat_title();
endif;
?>
</h1>
|
Строка 3 – это условие, если открыта страница рубрик, а строка 4 – это вывод названия текущей рубрики.
В файле стилей /css/style.css пропишем стили для заголовка страницы. Нужно будет добавить h1
и h1 a
к строкам 48 и 55, и добавить где-нибудь снизу новый стиль для .page-title
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
h1,h2,h3,h4,h5,h6
{
font–family: ‘Open Sans Condensed’, sans–serif;
font–weight: 700;
color: #1b252a;
}
h1 a, h2 a, h4 a, h5 a, h6 a
{
text–decoration: none;
color: inherit;
}
.page–title
{
font–size: 3.5em;
line–height: 1.25em;
}
|
Теперь выведем описание для рубрики:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<h1 class=“page-title”>
<?php
if ( is_category() ) :
single_cat_title();
endif;
?>
</h1>
<?php
if ( is_category() ) : // выводим описание только на странице рубрики
if (category_description() !== ”) : // если есть описание, выведем его
echo ‘<p>’ . category_description() . ‘</p>’;
endif;
endif;
?>
|
Аналогичным образом добавим заголовки для других типов архивов.
Шаг 3 Заголовок для архивов по датам
Модифицируем код, и добавим к нему проверку, не открыта ли страница архива по годам:
1
2
3
4
5
6
7
8
9
|
<h1 class=“page-title”>
<?php
if (is_category()):
single_cat_title();
elseif (is_year()):
printf(__(‘Year: %s’, ‘striped’), ‘<span>’ . get_the_date(_x(‘Y’, ‘yearly archives date format’, ‘striped’)) . ‘</span>’);
endif;
?>
</h1>
|
А потом по месяцам и по дням:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<h1 class=“page-title”>
<?php
if (is_category()):
single_cat_title();
elseif (is_year()):
printf(__(‘Year: %s’, ‘striped’), ‘<span>’ . get_the_date(_x(‘Y’, ‘yearly archives date format’, ‘striped’)) . ‘</span>’);
elseif (is_month()):
printf(__(‘Month: %s’, ‘striped’), ‘<span>’ . get_the_date(_x(‘F Y’, ‘monthly archives date format’, ‘striped’)) . ‘</span>’);
elseif (is_day()):
printf(__(‘Day: %s’, ‘striped’), ‘<span>’ . get_the_date() . ‘</span>’);
endif;
?>
</h1>
|
Шаг 4 Заголовок для страницы меток
Добавить заголовок на страницу меток очень легко:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<h1 class=“page-title”>
<?php
if (is_category()):
single_cat_title();
elseif ( is_tag() ) :
single_tag_title();
elseif (is_year()):
printf(__(‘Year: %s’, ‘striped’), ‘<span>’ . get_the_date(_x(‘Y’, ‘yearly archives date format’, ‘striped’)) . ‘</span>’);
elseif (is_month()):
printf(__(‘Month: %s’, ‘striped’), ‘<span>’ . get_the_date(_x(‘F Y’, ‘monthly archives date format’, ‘striped’)) . ‘</span>’);
elseif (is_day()):
printf(__(‘Day: %s’, ‘striped’), ‘<span>’ . get_the_date() . ‘</span>’);
endif;
?>
</h1>
|
Шаг 5 Заголовок для страниц автора и других
Также нужно добавить заголовок для страницы автора (это строка 14), и страниц других видов архивов, которые могут добавить пользователи (это строка 16, и эта страница будет называться просто “Архивы”):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<h1 class=“page-title”>
<?php
if (is_category()):
single_cat_title();
elseif ( is_tag() ) :
single_tag_title();
elseif (is_year()):
printf(__(‘Year: %s’, ‘striped’), ‘<span>’ . get_the_date(_x(‘Y’, ‘yearly archives date format’, ‘striped’)) . ‘</span>’);
elseif (is_month()):
printf(__(‘Month: %s’, ‘striped’), ‘<span>’ . get_the_date(_x(‘F Y’, ‘monthly archives date format’, ‘striped’)) . ‘</span>’);
elseif (is_day()):
printf(__(‘Day: %s’, ‘striped’), ‘<span>’ . get_the_date() . ‘</span>’);
elseif (is_author()):
printf( __( ‘Author: %s’, ‘striped’ ), ‘<span class=”vcard”><a class=”url fn n” href=”‘ . esc_url( get_author_posts_url( get_the_author_meta( ‘ID’ ) ) ) . ‘” title=”‘ . esc_attr( get_the_author() ) . ‘” rel=”me”>’ . get_the_author() . ‘</a></span>’ );
else :
_e( ‘Archives’, ‘striped’ );
endif;
?>
</h1>
|
Итоги Мы создали шаблон архивов!
Конечно, в процессе разработки темы для WordPress очень важно не забыть про шаблон архивов. Другой, не менее важный шаблон, это single.php – именно он выводит одиночную запись в блоге. Также, на этой странице добавляются комментарии к записям. Поэтому следующий урок будет связан с созданием файла single.php. Чтобы его не пропустить, подписывайтесь на обновления блога!