WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

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

Поддержка шаблонов для постоянных страниц - записей типа page была неизменна аж 12 лет. И помогала разработчикам удобно создавать шаблоны для страниц, но была всегда ограничена только типом записи page. Однако с версии WordPress 4.7 положение дел изменилось и теперь можно создавать шаблоны для абсолютно любых типов записей.

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

О том как создавать шаблоны для записей я писал в отдельной статье и там не только этот способ, а еще два. Этот способ идет там первым. Напомню: чтобы создать шаблон постоянной страницы, нужно в корне темы создать файл с любым названием, например, my-template.php и в нем указать php комментарий следующего вида:

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

<!-- html код шаблона -->

После этого на странице редактирования постоянной страницы в разделе «Свойства страницы» появится возможность выбрать этот шаблон.

Метабокс свойства страницы

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

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

С версии WordPress 4.7 функционал шаблонов страниц расширился. И теперь можно создавать шаблоны для страниц любого типа.

Чтобы указать, что создаваемый файл шаблона поддерживается типом записи, название этого типа записи нужно указать в заголовке: Template Post Type:. Несколько типов записей можно указать через запятую.

Для примера давайте создадим шаблон, который будет поддерживать три типа записи: post, page, product. Для этого в начале файла добавим такой php комментарий:

<?php
/*
Template Name: Мой шаблон страницы
Template Post Type: post, page, product
*/

// … остальной код шаблона

Теперь на страницах редактирования записей типов: post, page, product, можно будет выбрать шаблон «Мой шаблон страницы».

Шаблон страницы для типа записи post
Шаблон страницы для типа записи post

Заметки разработчикам

  • Если хоть один шаблон существует для типа записи, то метабокс «Свойства страницы» (Post Attributes) появится автоматически на странице редактирования записи. Не обязательно включать поддержку 'page-attributes' при регистрации типа записи.

  • Заголовок «Свойства страницы» можно изменить при регистрации типа записи в параметре label > attributes.
22 коммента
Полезные 4 Вопросы 2 Все
  • Александр

    Большое Вам спасибо. Очень нужная тема. Долго искал.

    2
    Ответить26.Июн.2019 14:15 #
  • Bahus-3 dendrblog.ru/must-have-dlya-blogera/gde-...

    Добавляю в код

    /*
    Template Name: Мой шаблон страницы
    Template Post Type: post, page, product
    */

    Но шаблон не появляется в меню выбора шаблона записи.

    Я создал категорию. И мне нужно, чтобы для этой категории применялся индивидуальный шаблон записей с увеличенным размером шрифта. Как это сделать, если в файле стилей указан размер шрифта для всего сайта и прописывается body в файле headers?

    1
    Ответить31.Мар.2020 18:10 #
  • Влад filmsvonline.com

    Тебе нужно для начала поместить код в

    Получится вот так

    а по поводу стилей.

    Можешь ниже прописать стили для данной страницы

    .стиль{

    }

    Ответить4.Апр.2020 16:10 #
  • Михаил

    А если мне нужно шаблон создать для мероприятий? Evens - У меня не создается шаблон. Какое есть решение ?

    Ответить15.Апр.2020 19:24 #
  • Такая проблема возникла - создал шаблон страницы и поместил его в специально созданную директорию 'templates', но на созданной странице не срабатывали js скрипты, конкретно анимация прокрутки, когда перенес файл в корневую директорию скрипты заработали, но планируется достаточно много шаблонов - >30, хочется упорядочить структуру, а не пихать все в корень.
    Может быть кто то сталкивался с этим? Как решается вопрос?

    Ответить27.Май.2020 15:22 #