WordPress template name не работает

is_page_template() WP 2.5

Проверяет используется ли для страницы файл шаблона. Можно указать название файла шаблона.

Можно проверить конкретное название файла шаблона, например about.php . Если этот файл используется для генерации страницы, то функция вернет true.

Если указывается название файла шаблона и при этом файл лежит во вложенной папке, то название вложеной папки тоже нужно указать:

Возвращает

Использование

Примеры

#1. Проверим используется ли у страницы отдельный шаблон

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

#2. Проверим используется ли файл about.php для отображения страницы

Если отображается страница шаблона «об авторе» (about), то мы может определить её по файлу который отвечает за вывод контента этой страницы. Допустим для этой страницы у нас создан отдельный файл шаблона about.php . Тогда код проверки будет выглядеть так:

#3. Несколько названий шаблонов для проверки

Список изменений

С версии 2.5.0 Введена.
С версии 4.2.0 The $template parameter was changed to also accept an array of page templates.
С версии 4.7.0 Now works with any post type, not just pages.

Код is_page_template() is page template WP 5.8.1

Cвязанные функции

Условные теги (типов страниц и запросов)

Условные теги (все)

Подключение файлов темы

Основные

Спасибо за сайт. Лучший.

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

Есть ли возможность выяснить, как шаблон используется?

С уважением

В статье 3 способа создать шаблон страницы в первом способе, в пункте «как это работает» описан принцип.

Чтобы вывести название текущего шаблона, который использует страницу нужно вывести метаполе записи : _wp_page_template .

Чтобы получить список всех используемых шаблонов, например, template-name. Нужно получить все метаполя _wp_page_template со значением «tpl-page.php», где tpl-page.php содержит в комментах строку // Template Name: template-name .

Все метаполя со значением можно получить запросом в БД:

Источник

Не показывается выбор шаблона в страницах WordPress

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

Происходит это следующим образом. Вы создаёте шаблон страницы, вверху которой пишите:

Кстати, начиная с версии WordPress 4.7 шаблоны можно создать для любого типа записей. Для этого в созданной странице нужно дополнить строчкой:

Затем заходите в редактирование страниц и не видите, как применить шаблон, потому что функция установки шаблона куда-то исчезла:

Читайте также:  Как понять что драйвера не работают

Если файл вернуть на место или создать пустой файл style.css, то снова появится возможность выбрать шаблон для страниц:

Альтернативный вариант

Можно не возвращать файл style.css в корень темы WordPress. Вместо этого в названии созданной страницы указать её slug (ярлык) или ID. Например, создать страницу с товаром:

Читайте также

Кстати, на сайте нет рекламы. У сайта нет цели самоокупаться, но если вам пригодилась информация можете задонатить мне на чашечку кофе в макдаке. Лайкнуть страницу или просто поблагодарить. Карма вам зачтется.

Комментарии к статье “ Не показывается выбор шаблона в страницах WordPress ” (10)

Здравствуйте!
можно поподробнее куда вставить файл style.css
У меня как раз такая проблема возникла после смены темы

В папке themes находятся другие папки — темы для wordpress. Внутри нужной вам темы должен лежать файл style.css.

Что делать, если шаблон есть, и style.css в корне темы, но выбора шаблона у страницы не появляется?
при этом front-page.php нормально показывает на главной сама, а index.php на остальных страницах.
тема своя, поэтому всего по-минимуму. может быть, для выбора шаблона есть какие-то критические зависимости в кишках темы?

В теме должны быть обязательные файлы. Вполне возможно, что причина в этом. Смотрите документацию по WordPress.

Уважаемый автор! Вы в корне не правы…

Файл стилей — никакого отношения не имеет к возможности выбора шаблона страницы. Эта возможность прописывается в файле function.php.

Не вводите народ в заблуждение.

Ваша категоричность ни к чему, все случае частные.

Еще как имеет, если не знаете зачем писать с такой уверенностью, я вот лично с этим столкнулся!

Ещё как вариант переключиться на другую тему, потом обратно.

А у меня такая ситуация: в админке ВордПресса главная страница отображается неполностью — исчез футер. Сам сайт (вне админки) я открываю через разные браузеры выдаёт на главной странице ошибку — 404 page not found. Перепробовал варианты с отключением плагинов по очереди; смену темы; полное удаление темы — затем её восстановление; смену со статической страницы на главную; пробовал вариант удаления/замены файла .htaccess — ничего из этого не помогло.

Попробуйте темы по умолчанию от WordPress. Если с ними сайт работает, значит проблема в теме.

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

Источник

Почему wordpress не видит шаблон?

Здраствуйте!
Возникла такая банальная проблема. Создаю .php файл с куском кода в начале

И дальше вставляю код из другого шаблона.
И. WordPress его не видит. Ни когда я создаю новую страницу, в списке шаблонов его нет, ни в едиторе тем в админке в правой части этого файла нет. Права стоят правильные (думал может как то с этим связано, когда создавал файл шаблона), кодировка utf-8.
Нашел ответ — деактивировать тему и заново активировать. Делал — менял на стандартную и возвращал. Ничего не изменилось, не помогло. Какие еще могут быть причины такого?

  • Вопрос задан более трёх лет назад
  • 2851 просмотр

Еще одна странность, видимо из-за которой все и не работает:
при изменении даже файла рабочего шаблона через filezilla он нормально обновляется в файлзилле. В данном случае была фраза Card system, удалил слово system, сохранил. Сохранилось

Читайте также:  Ваз 2199 не работает стоп сигнал

Заходим через файловый менеджер хостинга. Открываем этот же файл, все тоже самое

Но если зайти через вордпрессовскую админку, то там изменений нет. Даже при реактивации темы.

Сервер/сайт не мой, может там стоит нечто вроде патча? Что вообще такое может быть? никогда с таким не сталкивался. Может это я совсем дурак и не вижу очевидную вещь конечно

не вижу очевидную вещь конечно

Источник

Шаблоны страниц и типов записей

Страницы — это один из типов постов WordPress. По умолчанию все страницы выглядят одинаково, но средствами WordPress вы можете сделать страницы вашего сайта уникальными. Например создать страницу с картой, создать HTML-карту сайта, страницу с формой, лендинги и т.д. Всё это можно реализовать при помощи шаблонов страниц.

Кроме того, с версии WordPress 4.7 шаблоны поддерживаются всеми типами записей!

Установка шаблона для страницы

Если вы используете не свою собственную тему, а одну из стандартных тем WordPress или установленную из интернета, то вполне возможно, что эта тема имеет несколько уже готовых шаблонов страниц.

Для того, чтобы это проверить:

  1. Переходим в Страницы > Добавить новую.
  2. В метабоксе «Атрибуты страницы» выбираем один из шаблонов.

Либо, если у вас используется редактор Gutenberg, то опцию выбора шаблона вы сможете найти в настройках на вкладке «Страница» справа:

Если ваша тема не имеет ни одного шаблона страниц, то выпадающий список шаблонов просто будет отсутствовать.

Опции быстрого (Свойства, Quick Edit) и массового (Bulk Edit) редактирования также имеют возможность задавать шаблоны для страниц.

Нужно нажать ссылку «Свойства»

Также важно отметить, что один шаблон может использоваться для нескольких страниц одновременно.

Создание шаблона страницы

Для того, чтобы добавить шаблон страницы WordPress, нужно сделать два шага:

  1. В папке с темой создать какой-нибудь файл, так, чтобы его название не перекликалось с условными названиями файлов темы WordPress. Если не уверены, то придумайте такое название, которое кроме вас больше никому не прийдет в голову 🙂 например misha123.php .Файл шаблона также может располагаться в папке с родительской темой, папке с дочерней темой и, начиная с версии WP 3.4, в директории темы вы можете создать любую подпапку для шаблонов страниц.
  2. В начале вашего файла нужно обязательно указать название шаблона — после этого WordPress его «увидит»:

Далее в шаблоне вы можете использовать абсолютно любой код, не хотите подключать get_header() и get_footer() сайта? — да пожалуйста, можете вообще просто один туда засунуть и будет норм.

Имейте ввиду, что если тему, которая стоит на вашем сайте, разрабатывали не вы, то после её обновления все ваши созданные шаблоны страниц могут исчезнут (сам не проверял, но официальная документация говорит, что да). Поэтому, для таких целей рекомендуется создавать дочерние темы, а уже в них — шаблоны страниц.

Иерархия и порядок подключения файлов страниц

Кстати, про иерархию я уже записывал видеоурок.

Список ниже показывает приоритет задействования PHP-шаблонов файлов темы для отображения типа записей «Страницы».

  1. custom-template.php (если файл шаблона существует и выставлен для данной страницы в её настройках)
  2. page-<ярлык страницы>.php (если существует)
  3. page-.php (если существует)
  4. page.php (наиболее распространённое решение практически во всех темах)
  5. singular.php (если page.php не существует)
  6. index.php (используется, если все вышеперечисленные файлы отсутствуют в папке с темой)

Хотите лучше разбираться в иерархии шаблонов WordPress? – Рекомендую видеоурок.

Шаблоны страниц для записей произвольного типа

Шаблоны для постов любого типа появились в версии WordPress 4.7. Мне нравится, как плавно и постепенно WordPress расширяет возможности, внедряя только то, что действительно необходимо 😊 🎉

Шаблон для типов постов (записи тоже сюда относятся) создаётся точно так же, как и для страниц, только помимо параметра Template name: , нам ещё на следующей строке нужно указать параметр Template post type: , в котором можно указать название типа поста, или несколько названий через запятую, например я захочу использовать свой шаблон и для записей и для страниц, в этом случае он будет начинаться так:

Если у вас уже был какой-то шаблон для страниц и он уже использовался на сайте, то, после того, как вы добавите туда параметр Template post type: и укажите какой-то другой тип записей там, то уже существующие страницы, использующий этот шаблон не перестанут работать, однако при редактировании там уже будет указан Базовый шаблон.

А для соответствующего типа записи сразу появится возможность выбора шаблона в «Свойствах записи»:

В меню быстрого редактирования он тоже появится.

Определение используемого шаблона на странице

Окей, допустим вы используете шаблоны страниц и вам в вёрстке или в PHP-коде нужно сделать что-то особенное для этого шаблона. Как будем это делать?

Классы тега

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

Зато эта функция очень удобна, в атрибуте class тега она выведет:

  • тип текущего поста, например page ,
  • ID текущего поста, например page-id- ,
  • page-template , если используется произвольный шаблон страницы,
  • и… сам используемый шаблон страницы! Если же никакой шаблон не используется (ну я имею используются либо page.php , либо page-.php , либо page- <ярлык>.php, то будет добавлен класс page-template-default .

Давайте разберёмся, как формируется название класса тега для произвольного шаблона страниц. Предположим мы создали шаблон digital-agency.php и поместили его в папку page-templates в нашей теме, ну типо как page-templates/digital-agency.php . В отдельную директорию шаблон помещать не обязательно, кроме того, это стало возможно начиная с версии WordPress 3.4.

В итоге в классы будут добавлены:

  • page-template – то, что используется произвольный шаблон страницы,
  • page-template-page-templates – page-template- <папка шаблона>,
  • page-template-digital-agency – page-template- <название файла>,
  • page-template-page-templatesdigital-agency-php – название файла шаблона с расширением и с названием папки, в которой он находится.

Условный тег is_page_template()

Если же мы хотим проверить, используется ли определённый шаблон страницы внутри кода PHP, например у нас общий для всех страниц header.php , то рекомендую использовать функцию is_page_template().

Для нашего примера условие будет выглядеть следующим образом:

Хотите лучше разбираться в шаблонах WordPress? Попробуйте пройти мой видеокурс по созданию шаблона (темы) на основе готовой HTML-вёрстки.

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!

Источник

Оцените статью