Шаблоны в WordPress

Шаблоны в WordPress | n-wp.ru Настройки
👍 Научим бесплатно правильно создавать сайты на WordPress. Подробнее →

В WordPress, еще начиная с версии кажется 1.5, можно использовать пользовательские шаблоны для разных таксономий, форматов и типов записей. Для того, чтобы WordPress понимал, какие данные ему загружать, без каких либо сложных вычислений, ориентируясь только по названиям файлов, все шаблоны (то есть файлы, отвечающие за вывод информации в том или ином виде — не путать с темами!) подчиняются строгому порядку, иерархии.

Шаблоны в WordPress

Пора разобраться, что это такое, и как это можно применять.

Посмотрите на картинку, показывающую, как WordPress шагружает шаблоны (взята отсюда). Например, давайте проследим, как информация оказывается на главной странице, если вы ввели адрес блога. WordPress проверяет, нет ли среди файлов используемой вами темы home.php. Если есть, то он обрабатывает информацию согласно правилам, написанным в нем. Если нет, то информация обрабатывается согласно правилам, написанным в index.php. То есть в иерархии шаблонов home.php стоит выше index.php.

Как это можно использовать? Например, можно организовать главную страницу, на которой можно вывести определенные данные, отличные от основной страницы блога, в которой содержится список последних постов. Часто home.php, используя его иерархическое превосходство, используют для создания сайтов-визиток или фотоблогов.

С архивами еще интереснее. Взять, к примеру, архив постов определенного автора. WordPress сначала проверяет, нет ли среди файлов темы author-nicename.php. Как ни трудно догадаться, nicename — это ник автора. То есть если у Имануила Гидеоновича в блоге будет ник imag, то можно сделать архив его постов, содержание которого будет определяться файлом author-imag.php. Просто и удобно, не правда ли? Но на этом разработчики не остановились, и внедрили поддержку не только nicename, но и ID. Если WordPress не обнаружит файл author-imag.php, то дальше он будет искать author-ID.php. Например, если у Имануила Гидеоновича ID=13, то можно сделать архив его постов, содержание которого будет определяться файлом author-ID.php. И лишь только после того, как WordPress не обнаружит ни author-nicename.php, ни author-ID.php, он перейдет к использованию файла author.php.

То же самое относится к категориям, тегам и пользовательским таксономиям (то есть произвольным видам меток, созданным вами). Чтобы сделать для постов определенной категории архив индивидуального вида, можно использовать category-slug.php, или category-ID.php. Обратите внимание, что slug-шаблон имеет более высокое ранжирование в иерархии, нежели чем ID-шаблон. То есть если для определенной категории присутствует и category-slug.php и category-ID.php, то сначала будет использоваться category-slug.php. Чтобы не запутаться, лучше использовать какой-то один из шаблонов.

С одиночными постами тоже удобно работать с помощью разных шаблонов. Одиночные посты бывают простыми постами, либо постами, отображающими вложения (аудио, видео, изображения). Эти виды постов открываются, когда в свойствах вставленного мультимедийного объекта указано открывать его на отдельной странице вложения. Так вот для каждого вида вложений можно создать собственный шаблон: audio.php, video.php, image.php, application.php. Если WordPress обнаружит такие файлы в теме, то посты с вложениями будут выводиться согласно правилам, прописанным в них. Если таких файлов нет, то WordPress будет использовать файл attachment.php.

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

Главная страница
1. home.php
2. index.php

Посты
1. Пользовательский шаблон (выбирается в выпадающем списке шаблонов)
2. single.php
3. index.php

Вложения
1. audio.php или video.php или image.php или application.php или другие, которые соответствуют MIME-типам.
2. attachmet.php
2. index.php

Cтраницы
1. Пользовательский шаблон (выбирается в выпадающем списке шаблонов)
2. about.php
3. page.php
4. index.php

Категории
1. category-slug.php
2. category-ID.php
3. archive.php
4. index.php

Теги
1. tag-slug.php
2. tag-ID.php
4. tag.php
5. archive.php
6. index.php

Пользовательские таксономии
1. taxonomy-taxonomy-term.php
2. taxonomy-taxonomy.php
3. taxonomy.php
4. index.php

Даты
1. date.php
2. archice.php
3. index.php

Поиск
1. search.php
2. index.php

Страница 404
1. 404.php
2. index.php

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

Создай свой первый сайт на WordPress

tiaurus

Автор n-wp.ru — блога о WordPress для новичков.

Оцените автора
Добавить комментарий

  1. Grawl

    Отлично же! Как-раз делаю для Моего сайта тему с нуля, home.php пригодится. Хотя, тут вопрос: можно разделить тему по файлам, используя эти стандарты, а можно и с помощью условий (http://codex.wordpress.org/Conditional_Tags) организовать вывод через один только index.php.

    Ответить
    1. Можно. Только зачем изобретать велосипед, если он уже идет в комплекте — просто бери и пользуйся.

      Ответить
      1. Grawl

        Согласен. Я просто увлёкся этими условиями :)

        Ответить
  2. Альтернативная карта шаблонов
    [img]http://dl.dropbox.com/u/2027201/Images/WP_Hierarchy.jpg[/img]

    Ответить
    1. Grawl

      Тоже ничего. Но Я бы оформил помилее интеллект-карту. Сделать, что ли…

      Ответить
  3. Еще один вариант иерархии шаблонов.

    Ответить