WordPress как на ладони
WordCamp Saint Petersburg 2018 wordpress jino

Шаблоны страницы для типов записей в 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.
Шаблоны страницы для типов записей в WP 4.7 21 коммент
Полезные 4 Вопросы 1 Все
  • Edyan

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

    Ответитьмесяц назад #
  • @ Виктор

    Спасибо, много практического и полезного нашел на вашем сайте.
    Пробовал вставлять шаблон в корень темы, в папку templates, в папку page-templates, но результат всегда один: в админке шаблон можно выбрать при создании страницы (page), но по факту страница отображается с дефолтным хедером и футером.
    WP 4.9.5
    тема: eLearningWP (платформа для курсов, студентов и т.п.).

    Подскажите, пожалуйста, куда еще смотреть, что может быть не так?
    Целью создания "пустого"(без хедера и футера) шаблона страницы была возможность делать лендинги со своим дизайном напрямую из админки. Так как я сам верстальщик, то мне легко в будущем их править, но хотелось, чтобы редактор, не знакомый с html мог это делать в визуальном редакторе в самом вордпрессе (сменить дату, текст и т.п.), либо в Page Builder.
    Буду признателен за помощь.

    Ответить9 дней назад #
    • newbie21 cайт: yumchief.com

      Если ты не хочешь выводить хедер и футер на страницах, то в файле page.php удали get_header(); и get_footer();

      Но это полная херня, так не делается. Редактору, который не знаком с html не следует вообще доверять что-то изменять на сайте.

      2
      Ответить8 дней назад #

Здравствуйте, !

Ваш комментарий
Предпросмотр