Сайт о телевидении

Сайт о телевидении

» » Дочерние темы в WordPress. Зачем нужна дочерняя тема WordPress

Дочерние темы в WordPress. Зачем нужна дочерняя тема WordPress

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

Для подобных случаев в WordPress предусмотрен механизм создания дочерней темы (child theme). Такая тема использует в качестве основы родительский шаблон и при этом вы можете добавить в нее свои собственные файлы и функции.

Механизм работы с дочерними темами довольно простой. Прежде всего вам нужно в папке wp-content/themes создать новую папку для нее. Будем считать, что папка с основным шаблоном у нас называется parent, а мы создадим новую, которую назовем child.

В папку child нужно поместить, как минимум, один файл style.css. В нем необходимо разместить следующие инструкции:

/* Theme Name: Child Template: parent */

Theme Name: Child

Template: parent

Первая инструкция (Theme Name: Child) это просто название дочерней темы, фактически она не является обязательной, а вот вторая инструкция (Template: parent) является обязательной, и указывает, что данный шаблон является дочерним к parent.

Если вы помещаете в папку с дочерней темой какой-либо файл, то он заменяет такой же из родительского шаблона. Это правило действует для всех файлов, кроме functions.php.

@import url("../parent/style.css");

@ import url ("../parent/style.css" ) ;

Для корректной работы перед директивой @import не должно быть никаких правил CSS.

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

  • get_stylesheet_uri() — адрес файла стилей;
  • get_stylesheet_directory_uri() — адрес папки со стилями,

но он может подключать style.css каким либо другим способом, что приводит к возникновению проблем. В этом случае, скорее всего, будет не сложно посмотреть код и найти проблему.

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

Все прочие файлы, находящиеся в дочерней папке, как уже было сказано, заменяют аналоги из родительской темы. То есть вы можете взять оригинальный single.php, внести в него изменения и поместить в дочернюю папку. При работе движка Вордпресс будет использоваться именно он.

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

Структура папок в дочерней теме должна совпадать с родительской структурой, если вы модифицируете файлы во вложенных папках.

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

Поддержка дочерних тем (child themes) в WordPress появились ещё давно, но большинство пользователей на сегодняшний день всё равно предпочитают вносить изменения в код исходной темы напрямую. В этой статье мы расскажем о том, как работают дочерние темы в WordPress, и почему именно с помощью дочерних тем следует вносить любые изменения в существующие темы.

Что такое дочерняя тема

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

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

Как создать дочернюю тему

Самая простая дочерняя тема состоит из одного файла style.css , в котором указывается имя дочерней темы, и название директории с родительской темой. В этом же файле часто указывается ссылка на таблицу стилей родительской темы с помощью CSS директивы @import .

В качестве примера мы создадим дочернюю тему My Child Theme и будем использовать стандартную тему Twenty Twelve в качестве родительской.

Сперва убедитесь в том, что родительская тема существует — найдите директорию twentytwelve в wp-content/themes . Затем создайте новую директорию в wp-content/themes и назовите её my-child-theme . В этой новой директории создайте файл style.css и вставьте в него следующий заголовок:

/** * Theme Name: My Child Theme * Template: twentytwelve */ @import url("../twentytwelve/style.css");

С помощью этого заголовка мы определили название нашей новой темы, а так же указали родительскую. Директива @import в данном случае подгружает все стили из темы Twenty Twelve, поверх которых мы будем вносить наши изменения. Без этой директивы, наша дочерняя тема будет наследовать только шаблоны (разметку) родительской темы, а не стиль.

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

Зайдя в раздел Внешний вид → Темы, вы увидите, что ваша новая тема уже доступна для активации.

Если вы её активируете и перейдёте на главную страницу вашего сайта, вы увидите, что ваша дочерняя тема выглядит в точности как стандартная тема Twenty Twelve.

Работа со стилями

Стили CSS дочерней темы можно задать прямо в файле style.css сразу после директивы @import . Например, для установки цвета фона и цвета ссылок в вашей теме, добавьте следующий код в конец файла стилей:

Body { background: red; } a { color: green; }

Таким образом вы можете изменять стили любых элементов родительской темы, а найти необходимый элемент вы можете легко с помощью средств разработчика в браузере Google Chrome или с помощью расширения Firebug для браузера Firefox.

Работа с шаблонами

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

Текст подвала

Таким образом мы заменили текст в подвале темы Twenty Twelve на наш собственный.

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

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

Стоит так же отметить, что подобным образом изменять можно не все файлы родительской темы. Например, вы не сможете изменить файл, который был вызван PHP функцией include или require .

Работа с functions.php

Если у вас возникли вопросы по внесении изменений в существующие темы WordPress — оставьте комментарий и мы обязательно вам ответим.

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

Зачем это нужно

Зачем нужна дочерняя тема, я пояснил во вступлении. Поясню на практике. Я давно не использую шаблоны в авторском варианте, постоянно что-то меняю в файле, отвечающем за дизайн (style.css), убираю ссылки из футера, меняю местами вступления и анонсы к статьям в архивах. Короче делаю правки в файлах шаблона. Каждый раз, когда автор обновляет шаблон, я бы терял и восстанавливал свои правки, если бы не использовал дочерние темы.

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

Создать дочернюю тему WordPress вручную

  • Предположим, у вас тема «father», создаем к ней дочернюю темы;
  • Создайте каталог дочерней темы, пусть будет «daughter»;
  • В Notepad++ создайте файл.css со следующим содержимым:
/* Theme Name: Daughter Template: father */

Обратите внимание, что директива Template указывает родительскую тему и она обязательна.

Важно! Теперь, когда вы поместите в каталог «дочки» файл, он заменяет аналогичный файл у «родителя». Это правило НЕ работает для файла functions.php.

Но это не всё. Нужно стили «родителя» перенести в стили «дочки». Это делается двумя способами:

Способ 1. Просто перенести содержимое файла стилей (style.css) в аналогичный файл родителя;

Способ 2. Или добавить файл style.css дочки следующую строку:

@import url("../father/style.css");

Обращаем внимание на относительный адрес с указанием родительского шаблона (father).

Тематические плагины для создания дочерней темы

Про плагины для создания дочерней темы, скажу так, если вам нужна дочерняя тема, поставьте плагин, создайте «дочку», удалите плагин и не мучайтесь ручной работой. Работа с любым перечисленным ниже плагином займет 10-15 секунд, если вы не создаете дочернюю тему уже измененного шаблона.

Child Theme Wizard

Позволяет создать новую дочернюю тему без необходимости использования дополнительных инструментов прямо из интерфейса администратора WordPress.

Child Theme Configurator

https://ru.wordpress.org/plugins/child-theme-configurator/

Быстрая и простая в использовании утилита, которая позволяет анализировать любую рабочую тему и создавать дочернюю тему настраивать её. Child Theme Configurator позволяет легко идентифицировать и переопределять точные атрибуты CSS, которые вы хотите настроить. Анализатор сканирует предоставленную тему и автоматически настраивает вашу дочернюю тему.

Childify Me

https://ru.wordpress.org/plugins/childify-me/

Позволит создать дочернюю тему для любой установленной темы, непосредственно с панели Внешний вид>>>Тема.

Создать дочернюю тему измененного шаблона

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

Вариант 1. Поставьте плагин Child Theme Configurator, он сам «просветит» ваш шаблон и перенесет измененные файлы в дочернюю тему;

Вариант 2. Сделайте «дочку» в ручном режиме и далее: Перенесите измененные файлы из родительской темы в дочернюю тему.

Всё! Теперь вы работаете на дочерней, измененной ранее теме.

Выводы

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

Существуют просто фантастические темы для WordPress, однако в них много таких мелочей, которые каждый из нас хотел бы поменять. Цвет, размер шрифта, а может и текст кнопки?

Проблема в том, что даже небольшое изменение темы может сделать невозможным ее обновление до более поздней версии в будущем, потому что, если вы все-таки попытаетесь это сделать, то можете потеряете все изменения.

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

Сегодня в статье я объясню для чего вам нужны дочерние темы и как работать с ними.

Примечание: если после прочтения этого поста у вас все еще будут трудности с установкой дочерней темы, дайте мне знать в комментариях и я постараюсь вам помочь!

Как работают дочерние темы и почему их нужно использовать?

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

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

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

Обновления

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

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

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

Структура

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

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

Создание дочерней темы

Это очень просто — создать дочернюю тему. Так просто, что вы можете взять и скопировать мой пример внизу.

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

  • Создать директорию для темы
  • Создать таблицу стилей с информацией о вашей дочерней теме
  • Подключить стили родительской темы

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

И так, давайте детально рассмотрим каждый шаг. Для примера я буду создавать дочернюю тему для исходной темы Twenty Fourteen.

1. Для начала создайте папку для вашей новой темы в директории тем. Вы можете выбрать для нее имя. Ради ясности я назову ее twentyfourteen-child

2. На этом шаге создайте файл с таблицами стилей. Его имя должно быть style.css . Скопируйте и вставьте этот код в файл, который вы только что создали.

/* Theme Name: Twenty Fourteen Child Theme URI: http://yourwebsite..0.0 Tags: black, green, white, light, dark, two-columns, three-columns, left-sidebar, right-sidebar, fixed-layout, responsive-layout, custom-background, custom-header, custom-menu, editor-style, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready, accessibility-ready, responsive-layout, infinite-scroll, post-slider, design, food, journal, magazine, news, photography, portfolio, clean, contemporary, dark, elegant, modern, professional, sophisticated Text Domain: twenty-fourteen-child */

Theme Name: Twenty Fourteen Child

Theme URI: http://yourwebsite.com/twentyfourteen-child/

Description: My first child theme, based on Twenty Fourteen

Author URI: http://сайт

Template: twentyfourteen

Version: 1.0.0

Tags: black, green, white, light, dark, two-columns, three-columns, left-sidebar, right-sidebar, fixed-layout, responsive-layout, custom-background, custom-header, custom-menu, editor-style, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready, accessibility-ready, responsive-layout, infinite-scroll, post-slider, design, food, journal, magazine, news, photography, portfolio, clean, contemporary, dark, elegant, modern, professional, sophisticated

Text Domain: twenty-fourteen-child

В приведенном выше коде есть две важных строки, которые начинаются с “Theme Name” и “Template”. “Theme name” сообщает WordPress как ваша тема называется и это название отображается в селекторе тем. “Template” сообщает WordPress какую тему необходимо считать исходной темой.

Большинство остальных моментов интуитивно понятные за исключением text domain и tags. The text domain используется для перевода строк. Он должен быть уникальным для вашей темы и использоваться каждый раз, когда вы используете функции перевода. Для большей информации ознакомьтесь с I18n for WordPress Developers . Секция с тегами представляет собой список тегов, которые используются для Репозитория Тем WordPress. Для примера я скопировал теги из style.css файла исходной темы.

3.Сейчас ваша дочерняя тема работает без проблем. Если вы ее активируете и загрузите страницу весь контент будет присутствовать на ней, но никакой информации относительно стилей там не будет. Ранее я уже говорил, что сначала WordPress ищет функциональность дочерней темы и, если она отсутствует, то он обращает к исходной теме.

У нас есть файл с таблицами стилей, поэтому WordPress не подгружает файлы исходной темы. Чтобы убедится, что мы загружаем таблицы стилей исходной темы давайте их подключим с помощью системы enqueueing. Это можно сделать в файле темы 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"); }

add_action ("wp_enqueue_scripts" , "enqueue_parent_styles" ) ;

function enqueue_parent_styles () {

wp_enqueue_style ("parent-style" , get_template_directory_uri () . "/style.css" ) ;

Как работают дочерние темы?

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

Однако в этом правиле есть одно исключение — файл с функциями для темы. Файл functions.php из обоих родительской и дочерней тем будет подружаться. Если функции в дочерней теме заменяют родительские, то вы получите либо мультифункциональный сайт, либо вам придется копировать все содержимое файла с функциями родительской темы в дочернюю тему — ведь что не сделаешь для расширения темы.

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

Небольшие заметки для разработчиков тем

Если вы создаете темы, то есть парочка руководств, которыми вы можете воспользоваться, чтобы упростить этот процесс. В двух самых важных описывается разница между get_stylesheet_directory() и get_template_directory() и процесс создания pluggable functions .

Правильна директория

При обращении к assets, используя указанные функции, вы всегда должны помнить, что функции типа get_template_ будут указывать на директорию родительской темы, в то время как функции, относящиеся к типу get_stylesheet_ — на директорию дочерней темы.

/images/twitter.png" alt="Twitter Logo">Follow Me /images/github.png" alt="Github Logo">On Github

< a href = "http://twitter.com/danielpataki" > < img src = " /images/twitter.png" alt = "Twitter Logo" > Follow Me < / a >

< a href = "http://github.com/danielpataki" > < img src = " /images/github.png" alt = "Github Logo" > On Github < / a >

Одним из преимуществ использования get_stylesheet_directory_uri() является то, что разработчики дочерних тем могут использовать свою собственную картинку, просто размещая ее в правильном месте. С другой стороны, если картинка не существует в дочерней теме, то она не будет отображаться совсем.

Это объясняется тем, что, если дочерняя тема активна, то функция get_stylesheet_directory_uri() не проверяет (не знает) какой файл вы загружаете, соответственно она не будет проверять его существование и всегда будет возвращать URI для дочерней темы.

Изменяемые функции

Есть еще один метод, который следует использовать — pluggable функции WordPress. Он позволяет авторам дочерних тем переписывать функции, определенные в родительской теме. Под этим подразумевается оборачивание функций в функцию function_exists() .

Предположим, что вы создаете функцию для отображения custom post meta с именем my_meta() . Дочерняя тема никак не может изменить эту функцию, т.к. она не может быть определена дважды. Решением этой проблемы может быть только создание функции, которая не определена (помните, что файл с функциями дочерней темы загружается первым).

Дочерняя тема - это тема, которая наследует функционал и дизайн другой темы, называемой «родительской». Дочерняя тема - рекомендуемый разработчиками WP способ модифицировать «под себя» существующую тему.

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

Есть несколько причин, почему вам бы хотелось использовать дочернюю тему:

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

Как сделать дочернюю тему WordPress

Дочерняя тема состоит, как минимум, из одной папки (директории дочерней темы) и двух файлов (style.css и functions.php), которые вам нужно будет создать. Итак, вам потребуется:

  • Директория дочерней темы
  • style.css
  • functions.php

Первый шаг - это создание директории для дочерней темы, которая будет размещаться в папке wp-content/themes . Рекомендуется, чтобы название директории дочерней темы оканчивалось суффиксом “ -child ” (хотя и не обязательно, особенно, если вы создаете тему для публичного использования).

Вам также нужно удостовериться, чтобы в названии директории для дочерней темы не было пробелов, в против случае это вызовет ошибку. На скриншоте выше название нашей дочерней темы “ twentyfifteen-child ”, означающее, что родительской темой является Twenty Fifteen .

Следующий шаг - создание файла стилей для дочерней темы (style.css). Файл стилей должен начинаться со следующей мета-информации:

/* 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: Twenty Fifteen Child

Theme URI: http://example.com/twenty-fifteen-child/

Description: Twenty Fifteen Child Theme

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

Важная информация, о которой вы должны знать:

  • Вам надо будет заменить текст этого примера, исходя из вашей ситуации.
  • Строка “ Template ” соответствует названию директории родительской темы. В нашем примере родительской темой является Twenty Fifteen, поэтому строка “ Template ” содержит “ twentyfifteen ”. В вашем случае может быть другая тема, поэтому скорректируйте ее соответствующим образом.
  • В принципе, файла стилей (style.css) уже достаточно для создания дочерней темы. Однако для грамотной постановки в очередь на загрузку файлов стилей потребуется файл functions.php (см. ниже).

Третий и последний шаг - постановка в очередь родительских и дочерних файлов стилей.

Заметьте, что предыдущий метод предполагал импорт родительских стилей, используя директиву @import . Сейчас это уже устаревшая практика.

Как правильно и корректно загружать стили

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

Данный метод также предполагает использование функции wp_enqueue_style() в дочернем файле functions.php . Поэтому вам нужно создать этот файл в директории с дочерней темой.

Первая строка дочернего файла functions.php начинается с открытия тега PHP (

Следующий пример функции будет работать, если родительская тема использует только один главный файл style.css , содержащий все CSS правила. Если ваша тема имеет больше одного.css файла (в т.ч. ie.css , style.css , main.css), тогда вам потребуется удовлетворить все необходимые зависимости родительской темы.

add_action("wp_enqueue_scripts", "theme_enqueue_styles"); function theme_enqueue_styles() { wp_enqueue_style("parent-style", get_template_directory_uri() . "/style.css"); }

Как правило, файл стилей дочерней темы загружается автоматически. Если это не так, вам также надо будет его поставить в очередь. Настроив “ parent-style ” как зависимость, убедитесь, что стили дочерней темы загружаются после нее.

add_action("wp_enqueue_scripts", "theme_enqueue_styles"); function theme_enqueue_styles() { wp_enqueue_style("parent-style", get_template_directory_uri() . "/style.css"); wp_enqueue_style("child-style", get_stylesheet_directory_uri() . "/style.css", array("parent-style")); }

add_action ("wp_enqueue_scripts" , "theme_enqueue_styles" ) ;

function theme_enqueue_styles () {

wp_enqueue_style ("parent-style" , get_template_directory_uri () . "/style.css" ) ;

wp_enqueue_style ("child-style" ,

get_stylesheet_directory_uri () . "/style.css" ,

array ("parent-style" )

Теперь ваша дочерняя тема готова для активации. Войдите в административную панель, далее на страницу Внешний вид > Темы . Вы должны увидеть вашу дочернюю тему в списке тем и готовую к активации. (Если в текущей инсталяции включена мультисайтовость, тогда вам надо переключиться на соответствующую панель, чтобы включить тему. После этого переключитесь обратно и активируйте тему).

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

Файлы шаблонов

Если вы желаете изменить больше, чем стили, существует способ переопределить любые файлы родительской темы. Для этого просто включите файл с таким же названием в папку с дочерней темой. Таким образом, он “перекроет” соответствующий файл в директории родительской темы в процессе загрузки сайта.

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

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

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

В отличии от style.css , файл functions.php дочерней темы не переопределяет родительскую копию. Напротив, он является как бы дополнением к ней (точнее, он загружается перед родительской копией).

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

Существует альтернативный путь, который будет более разумным: вы можете создать дочернюю тему, добавить в нее файл functions.php и поместить свою функцию вновь созданный файл. Функция будет делать ту же самую работу и оттуда, с тем преимуществом, что она не будет страдать от будущих обновлений родительской темы. Отсюда важное замечание: не копируйте полностью контент родительского файла functions.php в такой же дочерний файл.

Структура functions.php проста: открывающий тег PHP в начале, а ниже него размещаете свой код PHP. В этот файл вы можете разместить столько кода, сколько необходимо. Пример ниже иллюстрирует элементарный файл functions.php , который делает одну простую вещь: добавляет ссылку на фавиконку в тег HTML странички.

" . "\n"; } add_action("wp_head", "favicon_link");

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

if (! function_exists("theme_special_nav")) { function theme_special_nav() { // Сделать что-то. } }

В этом случае, дочерняя тема может заменить PHP-функцию родителя, просто объявив ее заранее.

Включение файлов в вашу дочернюю тему

Когда вам нужно включить файл, который должен являться частью структуры дочерней темы, используйте функцию get_stylesheet_directory() . Так как родительский файл стилей style.css заменяется дочерним style.css , и этот дочерний style.css располагается в корневой папке поддиректории дочерней темы, get_stylesheet_directory() будет указывать именно на директорию с дочерней темой, а не родительскую.

Ниже пример использования конструкции require_once , который иллюстрирует, как вы можете использовать get_stylesheet_directory , когда нужно дать ссылку на файл, хранящийся в структуре дочерней темы.

require_once(get_stylesheet_directory() . "/my_included_file.php");

require_once (get_stylesheet_directory () . "/my_included_file.php" ) ;

Дополнительная полезная информация

Использование форматов постов

Дочерняя тема наследует форматы постов, определенные в родительской. Когда создаете дочернюю тему, знайте, что использование add_theme_support("post-formats") перекроет форматы, определенные в родительской теме, а не добавит к ним.

Поддержка RTL (написание справа-налево)

Для поддержки языков RTL, добавьте файл rtl.css к вашей дочерней теме. Он содержит:

/* Theme Name: Twenty Fourteen Child Template: twentyfourteen */



 
Новое:
Популярное: