Если нужно сделать для одной страницы отдельный макет, вывести другой набор блоков или добавить свою логику, в WordPress для этого не обязательно переписывать всю тему. Обычно достаточно создать кастомный шаблон страницы и назначить его нужной записи в админке.
Это рабочий способ, когда главная тема подходит почти для всего сайта, но для конкретной страницы нужен особый дизайн: лендинг, страница «О компании», контакты, отдельная посадочная страница под рекламу или любой другой уникальный сценарий.
Что такое шаблон страницы и как он работает
Шаблон страницы — это PHP-файл в теме WordPress, который определяет, как будет выводиться содержимое конкретной страницы. WordPress ищет шаблон по иерархии шаблонов и, если находит подходящий файл, использует его вместо стандартного page.php или другого базового шаблона темы.
В классической теме можно создать отдельный файл, добавить в него специальный комментарий с названием шаблона, а затем выбрать этот шаблон в редакторе страницы. После этого WordPress будет рендерить именно этот файл, а не общий шаблон для всех страниц.
Важно понимать разницу между двумя подходами:
- Шаблон страницы — отдельный файл для конкретной страницы или группы страниц.
- Шаблонный фрагмент — часть шаблона, например
get_header(),get_footer()или подключаемый файл черезget_template_part().
Если задача касается именно отдельной страницы, удобнее начинать с кастомного шаблона. Если нужно изменить только маленький кусок интерфейса, иногда достаточно шаблонного фрагмента или хуков темы.
Когда кастомный шаблон — правильное решение
Этот вариант подходит, если нужно изменить не только текст, но и структуру страницы. Например:
- убрать сайдбар и сделать широкую колонку;
- показать на странице нестандартный набор блоков;
- вывести форму, карту, прайс или список преимуществ в другом порядке;
- скрыть часть элементов темы только на одной странице;
- сделать отдельный лендинг без влияния на остальные страницы сайта.
Если же нужно просто изменить заголовок, картинку или текст внутри обычной страницы, кастомный шаблон часто избыточен. В таком случае проще использовать стандартный редактор WordPress или блоки темы.
Как создать кастомный шаблон страницы в классической теме
Ниже — самый практичный вариант для тем, которые используют PHP-шаблоны. Перед изменениями сделайте резервную копию файлов темы или работайте в дочерней теме. Если править файлы родительской темы напрямую, обновление может затереть ваши изменения.
1. Создайте файл шаблона в дочерней теме
Откройте папку дочерней темы и создайте новый файл, например page-landing.php. Имя может быть любым, но лучше выбирать понятное и связанное с назначением шаблона.
В начало файла добавьте комментарий с названием шаблона:
<?php
/*
Template Name: Лендинг
*/
get_header();
?>
<main id="primary" class="site-main">
<?php
while ( have_posts() ) :
the_post();
the_content();
endwhile;
?>
</main>
<?php get_footer(); ?>Этот комментарий нужен WordPress, чтобы шаблон появился в списке выбора в админке. Без него файл останется обычным PHP-файлом темы и не будет доступен как шаблон страницы.
Внутри шаблона можно оставить базовую структуру темы или полностью собрать свою разметку. Минимально важно вызвать get_header() и get_footer(), если вы хотите сохранить шапку и подвал сайта.
2. Подключите нужную разметку и логику
Дальше вы решаете, что именно должно быть на странице. Можно оставить только контент записи, а можно добавить собственные блоки:
<?php
/*
Template Name: Лендинг
*/
get_header();
?>
<main id="primary" class="site-main landing-page">
<section class="hero">
<h1><?php the_title(); ?></h1>
<div class="hero__content">
<?php the_content(); ?>
</div>
</section>
<section class="landing-features">
<h2>Преимущества</h2>
<p>Здесь можно вывести любой статический HTML или динамические данные.</p>
</section>
</main>
<?php get_footer(); ?>Если в шаблоне нужен собственный цикл, используйте стандартный WordPress Loop. Для одной страницы он обычно несложный, но именно он гарантирует корректный вывод заголовка и содержимого записи.
3. Назначьте шаблон нужной странице
Откройте нужную страницу в админке WordPress. В блоковом редакторе справа обычно есть раздел с параметрами страницы, где можно выбрать шаблон. После сохранения WordPress начнёт использовать ваш файл только для этой страницы.
Если шаблон не появился в списке, проверьте три вещи:
- файл лежит именно в активной дочерней теме;
- в начале файла есть корректный комментарий
Template Name; - файл сохранён как
.php, а не как текстовый документ с ошибочным расширением.
Как сделать шаблон только для одной конкретной страницы
Иногда нужен не просто шаблон, а файл, который WordPress подхватит автоматически для страницы с определённым slug или ID. Это полезно, если вы не хотите выбирать шаблон вручную в админке.
Для этого в классической теме используют специальные имена файлов. Например, можно создать page-about.php для страницы со slug about или page-42.php для страницы с ID 42. WordPress будет искать такие файлы раньше общего page.php.
Этот способ удобен, когда страница одна и вы точно знаете, что её шаблон не должен применяться где-то ещё. Но у него есть минус: если потом изменится slug, логика поиска шаблона тоже может сломаться. Для более гибкого управления обычно удобнее явный шаблон с выбором в админке.
Если тема блочная: что меняется
В блоковых темах логика отличается. Там шаблоны чаще хранятся как HTML-файлы в папке templates, а внешний вид собирается через Site Editor. Для страницы можно создать отдельный шаблон в редакторе сайта и назначить его нужной записи.
Если вы работаете именно с блоковой темой, не пытайтесь бездумно копировать классический PHP-шаблон. В таком случае структура будет другой: вместо PHP-файла обычно создаётся шаблон через редактор сайта или отдельный HTML-шаблон темы. Конкретный способ зависит от того, как устроена активная тема.
Если вы не уверены, какая у вас тема, посмотрите, есть ли в админке раздел Внешний вид → Редактор. Если он есть и тема собрана на блоках, вероятно, вам нужен именно блоковый шаблон, а не PHP-файл.
Как проверить, что шаблон работает правильно
После назначения шаблона откройте страницу на сайте и проверьте не только внешний вид, но и технические детали:
- отображается ли именно тот заголовок и тот контент, который вы ожидали;
- подключаются ли шапка и подвал, если они нужны;
- нет ли ошибок верстки, пустых блоков или лишних отступов;
- не сломались ли хлебные крошки, меню, форма или другие элементы темы;
- корректно ли страница выглядит на мобильном устройстве.
Если шаблон не применяется, сначала очистите кэш: плагина кэширования, сервера и браузера. На хостингах с агрессивным кэшированием новая версия шаблона иногда не видна сразу.
Если страница открывается, но выглядит как старая версия, проверьте, не переопределяет ли вывод другой шаблон темы или плагин конструктора страниц. В некоторых конфигурациях именно они берут управление на себя и игнорируют стандартный шаблон WordPress.
Типичные ошибки при создании шаблона
Самая частая проблема — файл создан, но WordPress его не видит. Обычно причина в одном из трёх мест: шаблон лежит не в той теме, в комментарии допущена ошибка или файл сохранён с неправильной кодировкой/расширением.
Ещё одна типичная ошибка — в шаблоне забывают вызвать the_content() или цикл WordPress. В результате страница открывается, но основной текст не выводится.
Бывает и обратная ситуация: разработчик копирует шаблон из другой темы, но не проверяет, какие функции и классы там используются. Если тема опирается на собственные хелперы, без них шаблон может работать с ошибками. Поэтому лучше начинать с минимального рабочего файла и добавлять логику постепенно.
Если вы меняете шаблон на рабочем сайте, сначала протестируйте его на staging-копии или хотя бы на локальной среде. Это особенно важно, если в шаблоне есть собственные запросы к базе, нестандартные поля или сложная верстка.
Что делать, если нужен не только дизайн, но и своя логика
Кастомный шаблон страницы подходит не только для оформления. В него можно добавить условный вывод блоков, подключение пользовательских полей, отдельные запросы к записям или форму с обработкой через стандартные механизмы WordPress и PHP.
Но здесь лучше не перегружать шаблон всем подряд. Если логика становится сложной, удобнее вынести её в отдельные функции дочерней темы или плагина, а в шаблоне оставить только разметку и вызовы этих функций. Так код проще поддерживать и переносить между темами.
Практически это выглядит так: шаблон отвечает за структуру страницы, а вся повторно используемая логика живёт отдельно. Это нормальный подход для WordPress-проекта, где одна страница должна работать иначе, чем остальные, но без хаоса в коде.