DIW#6. Шаблон WordPress — анатомия

06.06.2012

Шаблон Wordpress - анатомия

Настало время разобраться, как работает шаблон WordPress, из каких файлов он состоит и для каких целей нужен каждый файл. Если вы раньше не сталкивались с разработкой шаблонов WordPress, но имеете некоторый опыт веб-разработки — вы удивитесь, насколько легко и понятно они устроены. Если же у вас совсем нет опыта — не беда, в этом нет ничего сложного. Убедитесь сами…

Шаблон WordPress — анатомия

Конечно, все шаблоны выглядят по разному. Если вы скачаете пять-шесть шаблонов и посмотрите, из каких файлов они состоят — состав будет немного отличаться. Какая-то будет содержать страницу архивов, для специального вывода записей, у другой не будет шаблона, отвечающего за поиск. Однако, большинство шаблонов все таки очень похожи по составу. Давайте посмотрим, для чего предназначен каждый файл в составе шаблона:

Файлы шаблона и их назначение

По клику в новом окне откроется большая картинка

Теперь дам некоторые пояснения насчет этой схемы.

Файлы index.php и style.css абсолютно необходимы для функционирования любого шаблона. При отсутствии любого из этих файлов — WordPress просто не увидит этого шаблона. Технически, можно создать шаблон, который будет содержать только эти два файла. Однако, наверняка вам захочется иметь некоторый дополнительный функционал.

Подавляющее большинство тем будет содержать, в том или ином виде, файлы, отмеченные как Ядро и Стандарт. Эти файлы охватывают всю функциональность, которую посетители ждут от любого блога.

Файлы, отмеченные как специальные — вносят дополнительные шаблоны отображения в ваш блог. Например, файл image.php отвечает за отображение картинок и других медиа-объектов. Вы можете использовать его для какого-то особенного вывода картинок. К примеру, можно вставить вывод предупреждения об авторских правах или что-то вроде того.

Файл, отмеченный как Хлам — устаревший и давно не используется. Однако, в некоторых шаблонах он все встречается, поэтому я отразил это в схеме.

Брендирование шаблона

Стандартный скриншот для отображения в админке WordPress имеет размеры 300*225 пикселей. Для отображения текстовой информации о шаблоне в начало файла style.css необходимо добавить следующий текст:

/*
Theme Name: Super Theme
Theme URI: http://site.com/my-theme/ /**/
Description: Super theme for WordPress
Version: 1.0
Author: Vasily Pupkin
Author URI: http://site.com/
Tags: super, cool, sweet, white, minimal
*/

Естественно, текст меняйте по своему усмотрению

Взаимодействие файлов шаблона

Взаимодействие файлов шаблона

Все файлы шаблона не являются автономными. Они взаимодействуют и вызывают друг друга, чтобы вместе делать общее дело.

Например, при вызове главной страницы, движок запрашивает только index.php, в котором прописан(по идее ;)) вызов header.php в начале, sidebar.php в середине и footer.php в конце.

Затем sidebar.php может вызывать, в свою очередь, searchform.php для формы поиска и так далее. Кроме того, файл header.php, который включает в себя раздел head, будет вызывать файл style.css.

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

  • Главная — это обычно корневой URL вашего домена, например, site.com
  • Запись — это обычная запись блога
  • Страница — «статическая» страница, находящаяся за пределами основного потока сообщений. Например, страница контактов или карта сайта
  • Пользовательские страницы — страницы, для которых настроен специальный вывод записей. Например, галерея или страница отзывов
  • Результаты поиска — отображает список записей, найденных механизмом поиска по сайту
  • Архив — вывод записей по тегу, категории, дате, автору и прочим подобным признакам

Чем отличается вывод страниц и записей?

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

Записи обычно выводят с формами комментирования, страницы без них. В записях выводят информацию о дате публикации, авторе и прочие мета-сообщения. Страницы же лишены этого, да это и не нужно. Они несут статическую информацию и являются аналогом статических страниц классического HTML.

Давайте теперь ответим на самый главный вопрос: как же WordPress знает, какой шаблон использовать?

Можно предположить, что это жестко прописано на уровне системных файлов WordPress, но ведь большинство файлов в теме необязательны! Если ваш шаблон не имеет файла archive.php, WordPress показывает пустую страницу? Нет, вывод движется вниз по иерархии файлов шаблона , чтобы найти следующий, наиболее подходящий файл для отображения.

В конце концов, все дороги приводят к файлу index.php. Неудивительно, что это такой важный и нужный файл! Аналогично этому пути, мы можем двигаться в  других направлениях и создать файлы, которые очень специфичны.

Например, если мы хотим иметь уникальный шаблон при просмотре категории №456 нашего блога, мы создаем файл с названием category-456.php и WordPress автоматически его использует для ее отображения. Давайте посмотрим, как выглядит иерархия файлов шаблона

Иерархия файлов шаблона

Думаю, из этой схемы все понятно? Если нет — спрашивайте в комментариях, объясню подробнее.

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

Удачного вам дня

follow us in feedly

, ,

Комментариев: 12

  1. Андрей

    Столкнулся с тем, что в редакторе шаблона присутствуют только два файла, а именно: function.php и style.css. Как- же редактировать?

    Ответить
  2. АктМан

    А как вставить в форму комментариев вордпресса смайлы?

    Ответить
    • GerinG

      Там не все так просто, в формате комментария не ответить. Если интересно — оформим небольшой статейкой

      Ответить
  3. Светлана

    а мне не очень понятно. У моего шаблона нет файла archive.php, и теперь я понятия не имею, как сделать так, чтобы перед анонсами статей в рубрике вставить статический текст с описанием этой самой рубрики….

    Ответить
    • GerinG

      Светлана, берем index, переименовываем в archive и изменяем как нужно. Копируем в папку с шаблоном — смотрим и радуемся результату

      Ответить
  4. Эльвира

    Нет, лучше «НЕЧЕЛОВЕЧЕСКИМ»)) Обожаю такие термины. Кстати, они мне помогают быть незаменимой на работе: стоит на совещании у директора (женщина, вообще не работающая на компьютере) вставить пару-тройку классных терминов (я с базой данных наших клиентов работаю) в устный отчет, как вопросы у нее все отпадают, да еще и «респект» в ее глазах в виде премии)))

    Ответить
  5. GerinG

    Продающая страница, если человеческим языком говорить ))

    Ответить
  6. GerinG

    Со следующей недели сделаю небольшую серию. Точно будет страница контактов, страница регистрации, небольшой «лендинг», карта сайта и пока не решил, что еще важно.

    Принимаю заявки если что

    Ответить
  7. akkad

    Спасибо. Лучше прояснилась структура, рисунок особенно полезный.
    О кастомных страницах хотелось бы подробнее узнать

    Ответить