Шаблоны страниц

wordpress-theme-basics
Шаблоны страниц являются особым типом файлов шаблона, которые могут быть применены к конкретной странице или группе страниц.

Так как шаблон страницы специфический тип файла шаблона,то вот некоторые отличительные особенности шаблонов страниц:

  • Шаблоны страниц применяются только к страницам, не к любому другому типу контента (например, записи и пользовательские типы записи).
  • Шаблоны страниц используются для изменения внешнего вида страницы.
  • Шаблоны страниц могут быть применены к одной странице, к секции страницы или классу страниц.
  • Шаблоны страниц обычно имеют высокий уровень специфичности, имея целью отдельные страницы или группы страниц. Например, шаблон страницы с именем page-about.php является более специфическим, чем файлы шаблонов page.php или index.php, так как он будет влиять только на страницу с ярлыком «about».
  • Если шаблон страницы имеет имя шаблона, пользователи WordPress при редактировании смогут выбирать страницу, на которой шаблон будет использоваться для отображения.

Использование шаблонов страниц

Шаблоны страниц отображают динамический контент вашего сайта на странице, например, записи, обновления новостей, календарные события, мультимедийные файлы, и т.д. Вы можете захотеть, чтобы ваша домашняя страница выглядела определенным образом и значительно отличалась от других частей вашего сайта. Или вы можете захотеть отобразить миниатюру записи, которая ссылается на запись в какой-то части страницы, иметь список последних записей в любом месте и использовать пользовательскую навигацию. Вы можете использовать шаблоны страниц для достижения этих пунктов.

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

Например, вы можете создавать шаблоны страниц для:

  • полной ширины, в одну колонку
  • в две колонки с боковой панелью справа
  • в две колонки с боковой панелью слева
  • в три колонки и т.д.

Шаблоны страниц в рамках иерархии шаблона

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

  1. Шаблон страницы — Если страница имеет назначенный пользовательский шаблон, WordPress ищет данный файл и, если он найден, использует его.
  2. page-{slug}.php — если пользовательский шаблон не был назначен, WordPress ищет и использует специальный шаблон, содержащий ярлык страницы.
  3. page-{id}.php — Если специальный шаблон, который включает в себя ярлык страницы не найден, то WordPress ищет и использует специальный шаблон с ID страницы в имени.
  4. page.php — Если специальный шаблон, который включает в себя ID страницы не найден, то WordPress ищет и использует шаблон страницы по умолчанию.
  5. index.php — Если более специфические шаблоны страниц не будут назначены или найдены, WordPress по умолчанию использует индексный файл темы, чтобы показать страницу.

Предупреждение: Существует также шаблон WordPress по имени paged.php. Он используется не для типа контента в виде страниц, а для отображения нескольких страниц архивов.

Назначение шаблонов страниц и пользовательское управление

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

  • Будет ли шаблон страницы для одной конкретной страницы или для любой страницы; и
  • Какой вид управления для пользователя вы хотите видеть в шаблоне.

Каждый шаблон страницы, который имеет имя шаблона может быть выбран пользователем при создании или редактировании страницы. Список доступных шаблонов может быть найден на Страницы > Добавить новую > Атрибуты > Шаблон. Таким образом, WordPress пользователь может выбрать любой шаблон страницы по имени шаблона, что может не соответствовать вашему замыслу.

Например, если вы хотите иметь специфический шаблон для вашей «about» страницы, это не целесообразно, называть этот шаблон страницы «About Template«, так как он был бы доступен для всех страниц (т.е. пользователь может применить его к любой странице). Вместо этого, создайте индивидуальный шаблон, и WordPress покажет страницу с соответствующим шаблоном, когда пользователь посещает страницу «about«.

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

Решение будет ли шаблон для глобального использования или индивидуального, достигается способом присваивания имени файлу и наличием или отсутствием определенного комментария.

Примечание: Иногда целесообразно иметь шаблон глобально доступным, даже если он предназначен для индивидуального использования. Когда вы создаете темы для релиза, может быть трудно предсказать, как пользователь будет называть свои страницы. Страницы портфолио отличный пример, что не каждый пользователь WordPress назовет свое портфолио одинаково или будут иметь тот же ID страницы и все же они  могут захотеть использовать этот шаблон.

Организация файлов шаблонов страниц

Как обсуждалось в «Организации файлов темы«, WordPress распознает подпапку page-templates. Поэтому, хорошая идея, в том, чтобы хранить ваши глобальные шаблоны страниц в этой папке, что поможет сохранять их организованно.

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

Создание пользовательских шаблонов страниц для глобального использования

Возможно, вы захотите шаблон, который может быть использован в глобальном масштабе на любой странице, или нескольких страницах. Некоторые разработчики группируют свои шаблоны по префиксу имени файла, например, page_two-columns.php

Предупреждение: Важно! Не используйте page- в качестве префикса, так как WordPress будет интерпретировать файл в качестве специфического шаблона, что означает, что он должен применяться только на одну страницу на вашем сайте.

Для получения информации об соглашениях имен файлов темы и именах файлов, которые вы не можете использовать — смотрите зарезервированные имена темы > Распространенные файлы шаблонов WordPress.

Совет: быстрый, безопасный метод для создания нового шаблона страницы, это сделать копию page.php и дать новому файлу отличительное имя. Таким образом, вы начинаете с HTML структуры ваших других страниц, и вы можете редактировать новый файл, если необходимо.

Чтобы создать глобальный шаблон, напишите вступительный PHP комментарий в начало файла, который утверждает название шаблона.

Хорошая идея, выбирать имя, которое описывает то, что делает шаблон, как имя отображаемое для пользователей WordPress, когда они редактируют страницу. Например, вы могли бы назвать свой шаблон Homepage, Blog, или Portfolio.

Этот пример из темы TwentyFourteen создает шаблон страницы под названием Full Width Page:

basics-page-templates-03После того как вы загрузите файл в папку вашей темы (например, page-templates), перейдите на страницу редактирования в админ панели.

На правой стороне под атрибутами вы увидите шаблон. Здесь пользователи могут получить доступ к глобальным шаблонам страниц.

Подсказка: список выбора имеет максимальную ширину 250px, поэтому длинные имена могут быть урезаны.

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

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

  1. page-{slug}.php
  2. page-{ID}.php

Например: Ваша страница «О нас» имеет ярлык «about» и идентификатор 6. Если в папке вашей активной темы имеется файл с именем page-about.php или page-6.php, то WordPress будет автоматически находить и использовать этот файл для показа страницы «О нас».

Для использования, специафические шаблоны страниц должны быть в папке вашей темы (т.е. /wp-content/themes/my-theme-name/ ).

Использование условных тегов в шаблонах страниц

Вы можете сделать меньшие, специфические изменения страницы с Условными тегами в вашем файле темы page.php. Например, ниже пример кода, который загружает файл header-home.php для вашей главной страницы, но загружает другой файл (header-about.php) для вашей страницы «О нас», а также применяет по умолчанию header.php для всех других страниц.

Определение шаблона страницы

Если ваш шаблон использует body_class() функцию, WordPress будет выводить классы в теге body для имени класса типа контента (page), идентификатора страницы (page-id-{ID}) и шаблон страницы, который используется. Для страницы page.php по-умолчанию, имя класса генерируется как page-template-default:

Примечание: специфический шаблон (page-{slug}.php или page-{ID}.php) также получает page-template-default класс, а не свой собственный класс body.

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

То HTML генерируется будет следующим:

Обратите внимание на page-template-my-custom-page-php класс, который применяется к тегу body.

Функции шаблона страницы

Эти встроенные функции и методы WordPress могут помочь вам работать с шаблонами страниц:

  • get_page_template() возвращает путь к шаблону страницы, используемого для отображения страницы.
  • wp_get_theme()->get_page_templates()  возвращает все пользовательские шаблоны страниц, доступные на данный момент в активной теме (get_page_templates() является методом WP_Theme класса).
  • is_page_template() возвращает TRUE или FALSE в зависимости от того, был ли использован специфический шаблон для отображения страницы.
  • get_page_template_slug() возвращает значение настраиваемого поля _wp_page_template (NULL, когда значение пустое или «по умолчанию»). Если странице была присвоен пользовательский шаблон, то имя файла этого шаблона хранится как значение пользовательского поля с именем  «_wp_page_template» (в wp_postmeta таблице базы данных). (Пользовательские поля, начиная с подчеркивания не отображаются на экране редактирования в модуле пользовательских полей)
Навигация по разделам:

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *