Шаблоны страниц и типов записей

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

Средствами WordPress вы можете сделать страницы вашего сайта уникальными. Например создать страницу с картой, создать HTML-карту сайта, страницу с формой, лендинги и т.д. Всё это можно реализовать при помощи шаблонов страниц.

Установка шаблона для страницы 

Если вы используете не свою собственную тему, а одну из стандартных тем WordPress или установленную из интернета, то вполне возможно, что эта тема имеет несколько уже готовых шаблонов страниц.

Для того, чтобы это проверить:

  1. Переходим в Страницы > Добавить новую.
  2. В метабоксе «Атрибуты страницы» выбираем один из шаблонов.
Выбираем шаблон страницы из выпадающего списка

Если ваша тема не имеет ни одного шаблона страниц, то выпадающий список шаблонов просто будет отсутствовать.

Опции быстрого (Свойства, Quick Edit) и массового (Bulk Edit) редактирования также имеют возможность задавать шаблоны для страниц.

Задаем шаблон страницы в параметрах быстрого редактирования

Также важно отметить, что один шаблон может использоваться для нескольких страниц одновременно.

Создание собственного шаблона страницы 

Для того, чтобы создать любой шаблон страниц, всегда нужно сделать два шага:

  1. В папке с темой создать какой-нибудь файл, так, чтобы его название не перекликалось с условными названиями файлов темы WordPress. Если не уверены, то придумайте такое название, которое кроме вас больше никому не прийдет в голову 🙂 например misha123.php.

    Файл шаблона также может располагаться в папке с родительской темой, папке с дочерней темой и, начиная с версии WP 3.4, в директории темы вы можете создать любую подпапку для шаблонов страниц.

  2. В начале вашего файла нужно обязательно указать название шаблона — после этого WordPress его «увидит»:
    <?php
    /*
    Template Name: Мой Супер-шаблон
    */
  3. Далее в шаблоне вы можете использовать абсолютно любой код, не хотите подключать get_header() и get_footer() сайта? — да пожалуйста, можете вообще просто один <iframe> туда засунуть и будет норм.

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

Иерархия и порядок подключения файлов страниц 

Тут конечно можно было бы соорудить какую-нибудь инфографику, но я, в связи нехваткой времени, решил ограничиться простым упорядоченным списком.

Этот список показывает приоритет задействования файлов темы для отображения типа записей «Страницы».

  1. custom-template.php (если файл шаблона существует и выставлен для данной страницы в её настройках)
  2. page-{ярлык страницы}.php (если существует)
  3. page-{ID страницы}.php (если существует)
  4. page.php (наиболее распространённое решение практически во всех темах)
  5. index.php (используется, если все вышеперечисленные файлы отсутствуют в папке с темой)

Я уже писал про иерархию в одном из моих предыдущих постов.

Шаблоны страниц для записей произвольного типа 

Эта потрясающая функция появилась в версии WordPress 4.7, мне нравится, как плавно и постепенно WordPress расширяет возможности, внедряя только то, что действительно необходимо 😊 🎉

Шаблон для типов постов (записи тоже сюда относятся) создаётся точно так же, как и для страниц, только помимо параметра Template name:, нам ещё на следующей строке нужно указать параметр Template post type:, в котором можно указать название типа поста, или несколько названий через запятую, например я захочу использовать свой шаблон и для записей и для страниц, в этом случае он будет начинаться так:

<?php
/*
 * Template name: Мой Супер-шаблон
 * Template post type: post, page
 */

Если у вас уже был какой-то шаблон для страниц и он уже использовался на сайте, то, после того, как вы добавите туда параметр Template post type: и укажите какой-то другой тип записей там, то уже существующие страницы, использующий этот шаблон не перестанут работать, однако при редактировании там уже будет указан Базовый шаблон.

А для соответствующего типа записи сразу появится такой блок, у меня для записей он появился под рубриками и называется Свойства записи:

Метабокс для выбора шаблона записи в админке

В меню быстрого редактирования он тоже появится.

Видеоурок по шаблонам страниц 

Миша Рудрастых Разработчик WordPress WooCommerce

Миша Рудрастых

Впервые познакомился с WordPress в 2009 году, и после двух лет мучений с Joomla и самописными движками это был просто бальзам на душу. С 2014 года меня можно встретить на WordCamp — официальной конфе по WP в Москве, иногда там выступаю. Также в настоящее время веду курсы по WordPress в Epic Skills в Питере.

По теме