Мар
16
2

Определяем шаблон страницы (функция is_page_template)

Функция 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

Но сегодня хотел рассказать немного о другом — как с помощью функции 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 из примера выше размещаются в этих файлах дабы внедрять разный код для разных шаблонов.

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(голосов - 3, средний балл: 5,67 из 7)
Загрузка...

категория Категории: Возможности;
теги Теги: , , , , .

комментария 2 к статье “Определяем шаблон страницы (функция is_page_template)”

  • Влад   21.03.2016

    Здравствуйте, вижу ваш блог полностью посвящен вордпрессу, по этому хотел спросить, у меня возник вопрос, добавил ее тут 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/ но ответов пока что нет, есть но не удачные, может вы знаете как это сделать

  • Tod   24.03.2016

    Влад, не сталкивался с этой задачей.

Оставить комментарий


Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:

Поиск:
Последние посты
Лучшее в категории

Облако тегов
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Загрузка ... Загрузка ...
Друзья проекта
Последние новости