Большинство пользователей wordpress берут темы из официального репозитория. Темы из репозитория написаны сторонними разработчиками, которые следят за кодом и периодически обновляют темы.
Но, если пользователь в тему самостоятельно вносит свои изменения, например в functions.php или настроили стили темы и добавили несколько PHP функций. Однако, после обновления темы эти изменения слетают. Приходится заново вносить свои изменения в тему. Чтобы, после обновлений темы постоянно не вносить свои изменения, можно создать и установить дочернюю тему.
Дочерняя тема работает только, если установлены обе темы – родительская и дочерняя. Хотя вы и активируете дочернюю тему позже. Она имеет связь исключительно со своей родительской темой, ни у какой другой родительской темы нет связи с чужой дочерней темой. Любые изменения в родительской теме никак не влияют на дочернюю.
Дочерняя тема сохраняет сделанные Вами настройки. Используя дочернюю тему, можно внести изменения прямо в код, без боязни потерять сделанные настройки самостоятельно при обновлении темы. Создание и установление дочерней темы – это первый шаг в обучении написания кода для WordPress. В целом дочерняя тема может улучшить рабочий процесс. При этом, используя только одну тему, можно создать сайты с разным уровнем функциональности и сложности, как для себя, так и для своих клиентов. Вид тем может отличаться друг от друга, хотя родительская тема одна. Дочерняя тема является продолжением родительской темы. Она перенимает все функции и особенности самой родительской темы. При этом, есть основной состав дочерней темы, который состоит из: директории дочерней темы, файла style.css, файла functions.php. Директория дочерней темы — это корень папки, где находятся файлы дочерней темы. Файл style.css содержит все необходимые свойства стилей вашей дочерней темы. Файл functions.php содержит определение функций, которые вызваны в дочерней теме. В дочернюю тему можно добавить любое количество шаблонных файлов, только вышеперечисленные файлы должны быть в каждой дочерней теме. Рассмотрим что из себя представляют в дочерней теме файлы style.css и functions.php. Файл style.css содержит стандартный хедер с информацией, что помогает WordPress распознать таблицу стилей дочерней темы. В файле style.css есть Тэги. Это Theme Name и Template. Они самые важные при создании дочерней темы. При этом, можно заменить тэг Template на подходящий slug родительской темы и вставить название дочерней темы.
Код для style.css:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/** * Theme Name: Themename Child * Description: Themename Child Theme * Theme URI: https://rimsy-partner.ru/_child/ * Author: Аvna Koljuge * Author URI: https://rimsy-partner.ru * Template: themename * Version: 1.0.0 */ /* ---------------------------------------------------------------------------- * Child Theme Style.css styles begin here! * ------------------------------------------------------------------------- */ |
Что касается файла functions.php, то в нём существует функция, которая называется aa_enqueue_styles(). Данная функция ставит в очередь таблицы стилей: сначала для родительской темы, затем для дочерней. Таким образом, стиль дочерней темы постоянно будет зависеть от родительской. Много разработчиков соединяют родительскую тему с дочерней в CSS. Это замедляет загрузку сайта, так как браузеру приходится загружать вначале стили из родительской темы, а после этого из дочерней. Однако, когда поставить в очередь обе таблицы стилей по отдельности, браузер сможет загрузить их одновременно. Это ускорит загрузку страницы дочерней темы.
Код для functions.php:
<?php /** * Child theme functions * * Functions file for child theme, enqueues parent and child stylesheets by default. * * @since 1.0.0 * @package aa */ // Exit if accessed directly. if ( ! defined( 'ABSPATH' ) ) { exit; } if ( ! function_exists( 'aa_enqueue_styles' ) ) { // Add enqueue function to the desired action. add_action( 'wp_enqueue_scripts', 'aa_enqueue_styles' ); /** * Enqueue Styles. * * Enqueue parent style and child styles where parent are the dependency * for child styles so that parent styles always get enqueued first. * * @since 1.0.0 */ function aa_enqueue_styles() { // Parent style variable. $parent_style = 'parent-style'; // Enqueue Parent theme's stylesheet. wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' ); // Enqueue Child theme's stylesheet. // Setting 'parent-style' as a dependency will ensure that the child theme stylesheet loads after it. wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array( $parent_style ) ); } }
Установка дочерней темы производится, так же как и родительская тема, через панель управления движка wordpress. Для этого, заходим в административную панель.
В меню, с левой стороны выбираем пункт «Внешний вид», подпункт «Темы». Выходим на вкладку «Темы» и жмём кнопку “Добавить новую”:
Неважно, являетесь ли вы начинающем сайтостроителем или разработчиком, дочерние темы – это отличный способ настроить свои основные темы в WordPress без боязни, что все изменения слетят после выхода обновления.