Как создать шаблон для страниц WordPress

В WordPress для создания всей визуальной разметки сайта используются темы. Они включают набор файлов, отвечающих за вывод того или иного раздела. Эти файлы именуются шаблонами. Для каждой части сайта используется свой шаблон. Например, для визуализации боковой панели используется шаблон с именем sidebar.php. За вывод отдельной записи отвечает файл single.php, а за “шапку” — header.php. Благодаря этому, можно довольно гибко настроить отображение тех или иных элементов WordPress-сайта.

Система шаблонизации в WordPress позволяет также создавать шаблоны для отдельных страниц. Например, внешний вид страницы Об авторе может отличаться от остальных. Так, на ней можно убрать с глаз посетителя лишние элементы сайта (например, панель виджетов), сосредоточив его внимание на биографии автора или предоставляемых им услугах.

Для начала нужно еще раз напомнить, что из себя представляет Страница в WordPress.

Что такое Страница?

Известно, что Страницы являются одним из двух типов контента на WordPress-сайте. Страницы обычно используют для размещения статичной информации, т.е. такой, которая остается неизменной. Например, информация о сайте и предоставляемых им услугах, контактные данные, о доставке и оплате (если интернет-магазин) и т.п. Комментарии для страниц по умолчанию отключены, так как обсуждать, например, страницу с контактами просто не имеет смысла. При создании страниц они не выводятся на главной. На них можно попасть обычно через меню в хедере или футере. Управление страницами осуществляется в разделе Страницы:

Админ-панель

Как создать шаблон для страниц WordPress?

Создать отдельный шаблон для той или иной страницы можно несколькими способами. Они используют разные инструменты реализации, но дают один и тот же результат. Рассмотрим наиболее популярные среди WordPress-пользователей и разработчиков.

Способ 1. Подключение файла шаблона через админ-панель

Этот способ является наиболее популярным и рекомендуемым способом создания шаблона для отдельной страницы. Тут все довольно просто. Рассмотрим его более детально.

Для начала необходимо перейти в каталог Вашей активной WordPress-темы, которая находится по адресу wp-content\themes\НАЗВАНИЕ_ТЕМЫ. В ней нужно создать PHP-файл шаблона с его названием. Например:

wpschool-page.php

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

Список файлов темы

Дальше в файл следует добавить специальный код, который сообщает системе, что доступен новый шаблон:

<?php
/*
Template Name: Шаблон страницы wpschool
*/
?>

<!-- Код шаблона -->

Директива Template Name как раз и указывает на то, что есть доступный к выбору шаблон страницы. После двоеточия указывается само название (тоже произвольное).

На следующем этапе нужно создать (или выбрать уже существующую) страницу, для которой и будет применен созданный шаблон. Это можно сделать в админ-разделе Страницы.

В правой части окна редактора страницы можно увидеть панель Атрибуты страницы, где есть опция Шаблон.

Страница редактирования

Именно в ней и задается шаблон. Видно, что по умолчанию используется значение Базовый шаблон. За него отвечает файл page.php. Если щелкнуть по этому значению, то можно заметить, что там также присутствует созданный нами шаблон.

Страница редактирования

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

Следует отметить как позитивные, так и негативные стороны использования этого способа. Основным его преимуществом является то, что созданный шаблон можно использовать на нескольких страницах. Из недостатков можно выделить то, что для установки шаблона таким способом нужно открывать каждую страницу и указывать нужный шаблон. Это довольно неудобно, особенно если на сайте таких страниц много.

Способ 2. Подключение файла шаблона через иерархию шаблонов

Этот способ был детально описан в одной из наших прошлых статей. Следует повториться, что WordPress перед тем, как показать страницу посетителю, ищет ее шаблон в следующей последовательности:

page-{SLUG}.php -> page-{ID}.php -> page.php -> index.php

Мы можем воспользоваться этим, создав необходимый файл шаблона для конкретной страницы. Определить страницу можно двумя способами: либо задать ее слаг, либо уникальный идентификатор (ID). В обоих случаях нужно будет создать PHP-файл с необходимым шаблоном.

Преимуществом такого способа является то, что система автоматически, найдя этот файл, применит его к нужной странице. Недостаток — шаблон применим исключительно к одной странице. Если Вам нужно применить его к нескольким, то для этого придется создать необходимое количество файлов.

Способ 3. Подключение файла шаблона через фильтр template_include

Способ предусматривает добавление специального PHP-кода в файл functions.php Вашей активной WordPress-темы.

Если Вы не знаете, как редактировать functions.php, то в этом случае Вам поможет плагин ProFunctions.

Итак, в самый конец указанного файла следует добавить следующие строки:

function wpschool_custom_template( $template ) {
    if( is_page( 'karta-sajta' ) ){
        if ( $new_template = locate_template( array( 'wpschool-page.php' ) ) )
            return $new_template ;
    }
}
add_filter( 'template_include', 'wpschool_custom_template' );

Приведенный код работает следующим образом. Если система найдет страницу со слагом karta-sajta, то автоматически применит к ней файл-шаблон с названием wpschool-page.php. Отметим, что последний можно назвать как угодно. Понятно, что таким образом Вам не нужно будет явно для страниц вручную указывать шаблон.

Как уже было сказано в самом начале, все способы успешно решают одну и ту же задачу. Какой из них выбрать — решать только Вам.

Курс WordPress-разработчик
Если Вам понравилась статья — поделитесь с друзьями
Михаил Петров
Привет! Меня зовут Михаил Петров. Я копирайтер и занимаюсь этим с 2013 года. Скрупулезность и ответственность - моя фишка! Не могу делать как попало и добиваюсь, чтоб заказчик сказал минимум “неплохо”. За все время своей работы пришлось написать и отредактировать немало разной “текстовухи”, включая SEO-тексты, отзывы и прочую чушь. На сегодняшний день специализируюсь на написании информационных статей и руководств технического направления. Вижу смысл и светлое будущее в текстах для людей, а не для машин.