Определяем шаблон страницы (функция is_page_template)
Когда-то очень давно я писал про создание отдельного шаблона страниц для сайта на WordPress. Это пригодится, если у вас в макете используется разный дизайн, например, для главной, контактов и т.п., причем «вместить» все это в один файл темы page.php не получается. Процедура достаточно простая — в общем случае нужно создать копию текущего page.php (или другого файла, используемого для страниц) и поменять в нем информацию в шапке.
То есть алгоритм действий примерно следующий:
- Скачиваете файл page.php вашей темы на локальный компьютер.
- Создаете его копию и называете, допустим, page-main.php.
- Открываете код файла и вносите правки, которые вам нужны для оригинального дизайна страницы. При этом в шапке указываете новое название шаблона и его описание.
/**
* The template for main page.
*
* Template Name: Main Page
*/ |
- Загружаете новый файл page-main.php обратно на ФТП в папку выбранной темы.
- Заходите в админке WordPress в редактирование страницы, и в блоке настроек «Атрибуты страницы» можно будет выбрать только что созданный шаблон.
Но сегодня хотел рассказать немного о другом — как с помощью функции WordPress узнать шаблон, установленный для текущей страницы. Используем для этих целей — is_page_template.
Функция is_page_template: описание, использование
Синтаксис ее следующий:
is_page_template ( string|array $template = '' ) |
Функция определят установлен ли указанный в параметре один или несколько шаблонов для данной конкретной страницы. Возвращает булевое значение True / False.
У нее есть всего один параметр — $template (string|array), где размещается название шаблона для проверки (в нашем примере сверху это был бы page-main.php).
Если файл находится в подкатегории, то пишете путь через слеш:
is_page_template( 'templates/about.php' ); |
Данное решение нельзя использовать внутри цикла Loop, но тут есть альтернатива в виде функция get_page_template_slug( $post_id ). Она возвращает путь (адрес) установленного шаблона или пустую строку. Использовать ее можно как в цикле, так и вне его:
// in the loop: if ( get_page_template_slug( get_the_ID() ) ){ // Yep, this page has a page template } // anywhere: if ( get_page_template_slug( $some_post_ID ) ){ // Uh-huh. } |
Но вернемся к нашей основной функции is_page_template. Вот вам простой пример ее применения:
<?php if ( is_page_template( 'page-main.php' ) ) { ?> <div id="main" class="inner-main"> <?php } else { ?> <div id="main"> <?php } ?> |
В данном случае в страницах с шаблоном page-main.php будет использоваться дополнительный стиль class=»inner-main», который для всех остальных опускается.
Это может пригодиться, допустим, если в обоих шаблонах (page.php и page-main.php) вызываются одинаковые блоки header(), sidebar() и т.п. Тогда условия IF из примера выше размещаются в этих файлах дабы внедрять разный код для разных шаблонов.
комментария 2 к статье “Определяем шаблон страницы (функция is_page_template)”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Плагины закрепленных постов sticky post в WordPress
- Сниппеты для хлебных крошек Yoast SEO – редактирование элементов, заголовка
- 35+ лучших WooCommerce шаблонов для интернет-магазинов на WordPress
- Добавляем CSS стили в WordPress админку (2 метода + советы)
- Плагин Easy Auto SKU Generator for WooCommerce — новый генератор артикулов товаров
- Комбинированные комплекты товаров в магазине WooCommerce (лучшие плагины)
- Как скрыть товары категории или убрать ее целиком из Woocommerce каталога
- WooCommerce (36)
- Безопасность (10)
- Видео (6)
- Виджеты (26)
- Возможности (131)
- Вопрос-ответ (4)
- Начинающим (47)
- Новости (43)
- Оптимизация (20)
- Плагины (229)
- Сервисы (77)
- Хаки и секреты (86)
- Шаблоны (42)
- Записи и посты wordpress, оформление записи
(5,89 из 7, голосов - 46)
- Умный копирайт в footer.php для wordpress
(5,63 из 7, голосов - 30)
- Обновление плагинов и тем в WordPress: автоматическое, через FTP, скрытие уведомлений
(5,07 из 7, голосов - 29)
- Рубрики и категории wordpress, функция wp_list_categories
(6,00 из 7, голосов - 19)
- Плагин TinyMCE Advanced – wordpress текстовый редактор
(6,24 из 7, голосов - 17)
- Иконки в меню WordPress — добавляем вручную и с плагином
(4,59 из 7, голосов - 22)
- Polylang — плагин для мультиязычных сайтов на нескольких языках в WordPress
(4,00 из 7, голосов - 25)

- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- WordpressPlugins.ru
- Majordomo - выгодные цены на виртуальный хостинг
- Хостинг виртуальный и VDS/VPS серверы
- Создание собственного сайта: преимущества, раскрутка
- Домашняя бухгалтерия или как правильно вести семейный бюджет
- Как работают поисковые системы
- Официальный сайт Вулкан Престиж — играть онлайн бесплатно
- Как заставить Windows 10 загружаться быстрей
- Продвижение в зависимости от объема проиндексированных страниц
- Зачем нужны аксессуары для iPhone?
Здравствуйте, вижу ваш блог полностью посвящен вордпрессу, по этому хотел спросить, у меня возник вопрос, добавил ее тут wmasteru.org/threads/%D0%92%D0%BE%D0%BF%D1%80%D0%BE%D1%81-%D0%BF%D0%BE-%D0%B2%D0%BE%D1%80%D0%B4%D0%BF%D1%80%D0%B5%D1%81%D1%83-%D0%BA%D0%B0%D0%BA-%D0%B2%D1%81%D1%82%D0%B0%D0%B2%D0%B8%D1%82%D1%8C-%D0%BA%D0%BE%D0%B4.21236/ но ответов пока что нет, есть но не удачные, может вы знаете как это сделать
Влад, не сталкивался с этой задачей.