Определяем шаблон страницы (функция 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, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Корисні поради по вибору плагінів для лендінгів на WordPress
- Як сховати відсутні товари в Woocommerce шорткодах та схожих товарах
- Сервіс AdMaven + плагін для монетизації трафіка на WordPress сайтах
- Плагіни для створення стрічки новин з біжучим рядком в WordPress
- Як змінити розміщення кнопки оформлення замовлення в WooCommerce
- Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими
- Підписка MonsterONE: чи варто використовувати цей сервіс у 2023 році? (+5 продуктів, які треба скачати в першу чергу)
- WooCommerce (46)
- Безопасность (12)
- Видео (6)
- Виджеты (28)
- Возможности (141)
- Вопрос-ответ (6)
- Начинающим (52)
- Новости (46)
- Оптимизация (23)
- Плагины (247)
- Сервисы (87)
- Хаки и секреты (87)
- Шаблоны (45)
- Записи и посты wordpress, оформление записи
(5,91 из 7, голосов - 47)
- Проблема с адаптивными изображениями в Gutenberg редакторе WordPress
(3,87 из 7, голосов - 55)
- Умный копирайт в footer.php для wordpress
(5,63 из 7, голосов - 30)
- Обновление плагинов и тем в WordPress: автоматическое, через FTP, скрытие уведомлений
(5,19 из 7, голосов - 31)
- Polylang — плагин для мультиязычных сайтов на нескольких языках в WordPress
(4,42 из 7, голосов - 31)
- Как откатить Вордпресс и модули на предыдущие версии (вручную и с плагинами)
(3,82 из 7, голосов - 34)
- Плагин TinyMCE Advanced – wordpress текстовый редактор
(6,35 из 7, голосов - 20)

- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- Почему пользователи выбирают смартфоны Apple iPhone: основные преимущества и факторы популярности
- Выделенный сервер: полный гид по аренде, выбору и администрированию
- Оптимизируем VPS под WooCommerce
- Найбільш очікувані новинки MMORPG ігор в 2025 році
- Советы по выбору холодильника LG с технологией No Frost
- Зачем нужны Wi-Fi ретрансляторы и как выбрать подходящую модель
- Введение в онлайн-казино Slotor777: многообразие игр и привлекательные бонусы
- Необходимость использования облачного хранилища в наше время, что важно и как выгодно?
Здравствуйте, вижу ваш блог полностью посвящен вордпрессу, по этому хотел спросить, у меня возник вопрос, добавил ее тут 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/ но ответов пока что нет, есть но не удачные, может вы знаете как это сделать
Влад, не сталкивался с этой задачей.