is_page_template() — позволяет определить, используется ли указанный файл темы при создании текущей страницы

Функция возвращает true, если указанный в параметрах файл шаблона используется при генерации текущей (открытой в данный момент) страницы, во всех остальных случаях возвращает false.

is_page_template( $template = '' )

$template
(строка) полное имя файла шаблона с расширением, например home.php, при этом начиная с версии WordPress 3.4 можно также указать и папку, в которой находится файл относительно директории темы, например inc/wordpress.php.

Пример использования

Как вы возможно знаете, генерировать главную страницу сайта может один следующих файлов темы:

  • front-page.php,
  • home.php,
  • index.php,
  • page.php и ещё 2 файла, через которые можно вывести страницу,
  • бесконечное количество пользовательских шаблонов страниц, которые можно выставить в настройках на главную;

Более подробно о порядке использования файлов темы можно почитать вот здесь.

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

if( is_page_template( 'index.php' ) ){
	echo '<div id="banner"></div>';
}

Пример из кодекса WordPress

Тут все довольно просто, вот мы создали какой-нибудь файл шаблона страницы, например wordpress.php, и теперь нам нужно узнать, используется ли этот файл при создании каких-то определенных страниц или нет — в этом нам поможет следующий код:

if ( is_page_template('wordpress.php') ) {
	// в это место вставляем код, который будет выполняться если файл используется
} else {
	// код, который будет выполняться если файл НЕ используется
}

Использование по отношению к циклу

Как и большинство других условных тегов, is_page_template() не будет правильно работать внутри цикла, поэтому:

  • используйте тег перед началом цикла,
  • после цикла использовать тоже можно, но там обязательно должна быть задействована функция wp_reset_query();

Миша

Впервые познакомился с WordPress в 2009 году. С 2014 года меня можно встретить на WordCamp по всему миру — официальной конфе по WordPress, иногда там выступаю, но с 2019 выступаю только на тех, которые сам организовываю. Также периодически школа Epic Skills и LoftSchool приглашают меня вести у них уроки/вебинары.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля — пишите мне.

Комментарии 2

  • Krizer28 мая 2014 #
    if( is_page_template( 'index.php' ){
    	echo '';
    }

    в данном примере имеется ошибка, вы забыли скобку закрывающую if

    • Миша29 мая 2014 #

      Спасибо большое, исправил

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

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, в случае несоблюдения этого условия в 99% случаях ваш коммент будет удалён, а автор заблокирован. Печалька.