`

Кастомные шаблоны для страниц сайта на WordPress

Введение

Файл page.php призван отображать разметку для всех страниц (но не записей) сайта, в результате чего все страницы имеют одинаковую структуру. Однако часто появляется необходимость в том, чтобы одна или несколько страниц были размечены по разному. Эту проблему можно решить несколькими способами.

В этой статье мы рассмотрим три варианта отображения различной разметки для определенных страниц.

В качестве примера, будем выводить форму обратной связи для условной страницы Контакты в первых двух вариантах и рекламный баннер для третьего варианта.

Вариант #1: С помощью условий через оператор if

Используя оператор if и функцию is_page() можно задать условие, при котором будет выводится определенный контент или изменятся разметка.

В параметре функции is_page() нужно указать ID или slug страницы. В нашем примере, страница Контакты имеет ID = 12 и slug = "contacts".

Чтобы узнать ID или slug страницы или поста, воспользуйтесь данными глобальной переменной $post. Например, echo $post->ID для ID и echo $post->post_name для slug.

Откроем файл page.php и вставим следующее условие в необходимом месте разметки.

В результате, только при запросе страницы Контакты мы увидим форму обратной связи. На всех остальных страницах форма отображаться не будет.

Вывод формы на странице с помощью условия и функции is_page().
Вывод формы на странице с помощью условия и функции is_page()

Если вы хотите проверять в условии несколько страниц, то вместо оператора if, воспользуйтесь условной конструкцией case.

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

Вариант #2: Файл-шаблон для определенной страницы

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

Файл-шаблон создается в корне темы и должен называться по следующей формуле: page-(slug).php.

Создадим отдельный шаблон для страницы Контакты с выводом формы обратной связи, как это было сделано в первом варианте. Т.к. slug страницы имеет значении contacts, то файл будет называться следующим образом - page-contacts.php.

Внутрь файла скопируем содержимое  page.php и добавим в него форму обратной связи.

Подобным образом можно создать шаблон для любой страницы, главное соблюдать правило именования файлов, например для страницы с именем about файл шаблон будет называться page-about.php.

В названии файлов, помимо имени (slug) страницы, можно также использовать ее ID, например page-14.php

Вариант #3: Файл-шаблон для нескольких страниц

Если вы хотите использовать один и тот же шаблон для нескольких страниц, то вам необходимо создать файл, который именуется по формуле: (name)-template.php.

В самом файле обязательно нужно указать имя шаблона, оно будет отображаться в общем списке шаблонов.

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

Создадим файл с именем adpage-template.php

И вставим в него следующий код. Обратите внимание на 3 строку, в ней указывается имя шаблона.

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

Выбор шаблона в редакторе страниц
Выбор шаблона в редакторе страниц

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

Вывод рекламного блока в файле-шаблоне adpage-tempalte.php
Вывод рекламного блока в файле-шаблоне adpage-tempalte.php