Большинство пользователей 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 без боязни, что все изменения слетят после выхода обновления.
