WordPress как на ладони
Мощный и не дорогой хостинг от Fornex.com Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

Шаблоны страницы для типов записей в 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.
15 комментов
Полезные 4 Вопросы 1 Все
  • campusboy3080 cайт: www.youtube.com/c/wpplus

    Напомню: чтобы создать шаблон постоянной страницы, нужно в корне темы создать файл с любым названием

    Как показывает практика, можно и в папочку в корне темы положить и всё равно найдет, но не глубже!

    3
    Ответить1.5 года назад #
    • Сергей cайт: wpshop.ru

      Подтверждаю, обычно создаю папку templates и складываю туда все шаблоны, удобно, чтобы в корне темы не создавать 10+ файлов.

      1
      Ответить1.5 года назад #
  • Лучший сайт по WP! Спасибо Вам за ваш труд. smile

    8
    Ответить1.5 года назад #
  • Роман

    Если нужен шаблон именно для Записей, то лучше написать так. Тогда ваш шаблон для Записей не будет в списке шаблонов для Страницы

    /*
    Template Name: Мой шаблон записи
    Template Post Type: post
    */
    1
    Ответитьгод назад #
  • Максим

    Спасибо за инфу! И СПАСИБО автору этого сайта, ни один мой проект не обходится без него.
    А как установить вновь созданный шаблон для типов записей по умолчанию? Просто, сейчас выбран по умолчанию базовый шаблон.

    1
    Ответитьгод назад #
  • Елена

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

    • new_type - главная страница (new_type),
    • страница рубрики (new_type/category),
    • страница материала (new_type/catecory/zapis)
    Ответитьгод назад #
  • Денис

    Для версии 4.9 на мультисайте не пашет.

    Заработало только тогда, когда из корня поместил в папку templates. Из корня не работает

    2
    Ответитьгод назад #
  • Алекс cайт: pogruzovik.ru

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

    Ответить11 мес назад #
  • BigDimoz15 cайт: pribylvseti.ru

    Как всегда - чётко и по делу good2! Как раз мне понадобилось сделать записи без сайдбара для вывод больших витрин, а в голове закэшировалось древняя инфа, что мол только для page.php без проблем можно было шаблоны строчить, а тут и single.php на УРА! Тимур, спасибо. Дай свой кошелёк WMZ для небольшого подарка.

    1
    Ответить11 мес назад #
  • Edyan

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

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

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

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

    Ответить8 мес назад #
    • newbie32 cайт: yumchief.com

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

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

      3
      Ответить8 мес назад #
Здравствуйте, !     Войти . Зарегистрироваться