Наследование шаблонов в WordPress

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

Дочерние темы

Файл стилей

Чтобы создать дочернюю тему, достаточно в папке со стилями /wp-content/themes/ создать новую папку для неё, а внутри расположить файлы style.css и functions.php. Для файла со стилями предполагается использования такого блока с служебной информацией в самом верху:

/*
Theme Name: Twenty Fifteen Child
Theme URI: http://example.com/twenty-fifteen-child/
Description: Twenty Fifteen Child Theme
Author: John Doe
Author URI: http://example.com
Template: twentyfifteen
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
Text Domain: twenty-fifteen-child
*/

Слева от знаков двоеточия указывается название параметра, справа — его значение. Соответственно, менять можно только правую часть. Значения должны быть на латинице. Чуть подробнее про эти данные:

  • Theme Name — задаёт название вашего шаблона. Это то, что вы увидите в админке сайта в разделе «Темы».
  • Theme URI — ссылка на сайт с превью этой темы. Я прописываю адрес того сайта, для которого и делается этот шаблон.
  • Description — описание темы, будет выводиться в админке. Больше ни на что не влияет.
  • Author — кто сделал шаблон, можете указать себя.
  • Author URI — сайт автора шаблона.
  • Template — здесь прописывается идентификатор шаблона, который используется в качестве родительского. Нижний регистр, без пробелов. Например, Twenty Fourteen прописывается как twentyfourteen — точное название вы можете найти в файлах родительской темы.
  • Version — версия, достаточно указать 1.0.0 и добавлять +1 к крайнему правому числу после каждой правки сайта (например, поменяли подвал — увеличили версию). В случае личного пользования можно вообще не трогать.
  • License — вид лицензии. Лучше оставлять тот же, что и у родительского шаблона.
  • License URI — адрес с текстом лицензии. Оставляем тот же, что у родительского.
  • Tags — теги для поиска шаблона в каталоге тем на официальном сайте WordPress. Так что в большинстве случаев можно ничего не указывать.
  • Text domain — служебное название темы, используется для составления специфичных функций и текстовых вставок.

Из этого списка важными являются: Theme Name, Description, Template.

Файл functions.php

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

add_action( 'wp_enqueue_scripts', 'enqueue_parent_styles' );

function enqueue_parent_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
}

После этого WordPress будет подключать сначала стили родительской темы, а потом стили, указанные в дочернем style.css (соответственно они будут перезаписывать родительские в случае конфликтов).

Файл превью

При желании можно также поместить в папке с шаблоном файл screenshot.png — он используется для превью шаблона в админке, в списке шаблонов. Размер файла 880 * 660. Без этого файла ничего не поломается, поэтому при создании темы для личного использования можно смело пропускать его.

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

Далее остаётся дописать те стили, которые вам нужно поменять: другой фон для шапки, другие цвета для ссылок и т.п.

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

Простое правило: если какой-то файл есть в дочерней теме, WordPress будет использовать его. Если нет — то будет брать файл из родительского шаблона.

Зачем использовать наследование?

Наследование подходит в тех случаях, когда вас в целом устраивает один из стандартных шаблонов движка, но вы бы хотели добавить пару правок. В таком случае вы сможете быстро создать собственную тему, но при этом оставить поддержку основной версии — она периодически будет сообщать об обновлениях, а вы сможете обновлять её версию БЕЗ потери ваших правок. Ведь все ваши правки в отдельном шаблоне.

При выходе новых версий вордпресса иногда появляются изменения и в структуре шаблонов. Могут появиться новые типы записей, измениться базовая вёрстка на более современную и так далее. Используя функционал наследования, вы никак не потеряете ваши правки, обновляя стандартные шаблоны.

Такая же ситуации и с премиум-шаблонами. Если вы купили (или нашли, где скачать, кхе-кхе) такой шаблон, то лучше завести дополнительно дочернюю тему и кастомизировать уже её, не меняя код основого шаблона. Как правило, разработчики премиум-шаблонов не забрасывают их и периодически выпускают обновления с исправлением ошибок и добавлением нового функционала.

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.