Больше результатов...

Generic selectors
Только точные совпадения
Искать в заголовках
Искать в контенте
Post Type Selectors
Filter by Categories
FAQ
Hostenko
Вдохновение
Видеоуроки
Новости
Плагины
Темы
Уроки
Хаки

Поднимите руку те, кто настраивал более 5 WordPress сайтов. Не опускайте руку, если вы настраивали более 10. Если же вы настроили более 20, то наверняка знаете о дочерних темах. Работа с дочерней темой — это отличный способ изменить родительскую тему WordPress. За эти годы WordPress темы стали очень разнообразными, но всё равно требуют настройки.

inet.ws - Powerful VPS Hosting in the USA, Canada, UK and DE!

Предположим, что вы установили одну из стандартных тем, к примеру, TwentySixteen или TwentyFifteen. Вы настроили её стили и добавили несколько PHP функций. Но что случится, когда разработчики выпустят новую версию? У вас есть только два пути: загрузить обновления и потерять все настройки, или оставить старую версию и сделать сайт уязвимым.

Смотрите также:

Лучшим вариантом будет создание дочерней темы для настройки любой темы.

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

Что такое дочерние темы?

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

Согласно с WordPress Codex:

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

Если выходят обновления родительской темы, то дочерняя тема не меняется. Измениться может только родительский контент, а настройки дочерней темы остаются такими же.

Отличия дочерней темы от родительской

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

Ну а сейчас давайте рассмотрим отличия дочерней и родительской темы:

  • Дочерняя тема работает только, если установлены обе темы – родительская и дочерняя. Хотя вы и активируете дочернюю тему позже.
  • Дочерняя тема имеет связь исключительно со своей родительской темой, ни у какой другой родительской темы нет связи с чужой дочерней темой.
  • Любые изменения в родительской теме никак не влияют на дочернюю.

Преимущества использования дочерней темы

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

У дочерних тем есть масса преимуществ:

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

Компоненты дочерней темы

Дочерняя тема является продолжением родительской темы, перенимая все функции и особенности. Как и обещали, вот основной состав дочерней темы:

  • Директория дочерней темы: Это корень папки, где находятся файлы дочерней темы.
  • Файл style.css: В этом файле содержатся все свойства стилей вашей дочерней темы.
  • Файл functions.php: Содержит определение функций, которые вызваны в вашей дочерней теме.

Вы можете добавить любое количество шаблонных файлов, но вышеперечисленные файлы должны быть в каждой дочерней теме.

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

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

1. Child Theme Configurator

Плагин Child Theme Configurator создаёт дочерние темы за пару кликов. С его мощным CSS редактором вы можете настроить расширенный уровень функциональности. Плагин не только идентифицирует, но и меняет нужные атрибуты CSS.

2. Child Themify

Для создания дочерних тем мы можем также порекомендовать плагин Child Themify. Он очень лёгкий и создаёт дочернюю тему всего лишь нажатием кнопки.

3. _child Theme Boilerplate

Если вы разработчик, то вам наверняка будет интересно оценить готовый шаблон для дочерней темы. Он называется _child и был создан для оптимизации процесса создания дочерней темы в WordPress.

Этот шаблон предоставляет вам интуитивную дочернюю тему, где для её создания вам нужно только вставить ссылку на родительскую тему. Шаблон _child помог нам создать профессиональную дочернюю тему. Вы можете найти этот шаблон на GitHub. А сейчас позвольте нам рассказать о двух готовых файлах в этом шаблоне.

  • style.css
  • functions.php

Файл style.css содержит стандартный хедер с информацией, которая помогает WordPress распознать его, как таблицу стилей дочерней темы. Тэги для Theme Name и Template — самые важные. Вы можете заменить тэг Template на подходящий slug родительской темы и вставить название дочерней темы.

Код для style.css:

/**
 * Theme Name: Themename Child
 * Description: Themename Child Theme
 * Theme URI: https://labs.ahmadawais.com/_child/
 * Author: mrahmadawais, WPTie
 * Author URI: http://ahmadawais.com/
 * 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 без боязни, что все изменения слетят после выхода обновления.

Источник: wplift.com
inet.ws - Powerful VPS Hosting in the USA, Canada, UK and DE!
Алексей Шевченко
редактор wpcafe
Изучает сайтостроение с 2008 года. Практикующий вебмастер, специализирующий на создание сайтов на WordPress. Задать вопрос Алексею можно на https://profiles.wordpress.org/wpthemeus/

Комментарии к записи: 27

Илья:

Класс! Спасибо за статью. Недавно как раз искал как создавать дочерние темы на Вордпресс

Victorias:

Здравствуйте! Узнала о дочерних темах после того, как уже сделала изменения в родительском шаблоне. Подскажите, пожалуйста, теперь если я сделаю дочернюю тему с помощью плагина Child Theme Configurator, то при обновлении WordPress изменения в теме останутся?

WPcafe.org:

При обновлении самого WordPress изменения останутся точно. Речь идет о том, чтобы изменения остались после обновления темы оформления. Для этого делается дочерняя и в нее вносятся изменения для родительской.

Анатолий:

Здравствуйте! Подскажите, пожалуйста, если я уже вносил изменения в родительской теме и хочу обновить её, то какую последовательность действий мне нужно выполнить, чтобы мои изменения не потерялись при обновлении родительской темы?

WPcafe.org:

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

Анатолий:

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

WPcafe.org:

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

Анатолий:

То есть мне уже нельзя делать дочернюю и обновляться, если в functions и style внесены правки?

WPcafe.org:

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

Анатолий:

Спасибо! :)

Игорь:

После создания дочерней темы. при настройке выдает:
Сайт sitename.com выполнил переадресацию слишком много раз.
как это исправить?

Сергей:

Спасибо, статья очень кстати пришлась

Алек:

Здравствуйте! Подскажите, а как правильно обновить тему? Вот я создал дочернюю тему, активировал ее. Чтобы обновить тему и не потерять изменения, мне нужно теперь активировать родительскую, обновить ее, а потом активировать дочернюю. Верно? Или не так?

WPcafe.org:

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

Алек:

А чтобы обновиться, нужно просто заново загрузить архив с новой версией темы? В ней нет автоматического обновления.

WPcafe.org:

В таком случае да, просто загрузите новый архив с темой.

Сергей:

Здравствуйте! А если мне надо в дочерней теме также и js подключить? Какой код надо добавить в functions.php в этом случае? Спасибо!

Сергей:

Можно ли такой код добавить?
wp_enqueue_script(‘newscript’, get_stylesheet_directory_uri() . ‘/newscript.js’, array(‘jquery’));
Будет ли он корректен? В какое место functions.php можно поместить?

Сергей:

Правильно ли я сделал, добавив без изменений приведённый выше код functions.php на свой сайт? У меня белая страница в итоге. Что — то надо было изменить в functions.php?

Татьяна:

Подскажите, пожалуйста: после создания дочерней темы плагином Child Theme Configurator его можно отключить? Или он должен быть всегда активен?
Буду благодарна за ответ!

Михаил:

Добрый день! А можно -ли добавить в дочернюю тему 2 разных style CSS? И как это сделать?

Ольга:

Здравствуйте! У меня такая же проблема как и у Анатолия: «Вносил изменения в файлы темы, в том числе и functions.php, и style.css…» Из вашего ответа, правильно ли я поняла?, что в созданной Дочерней теме файлы в functions и style будут оригинальные, не измененные, без правок, как были в родном Шаблоне сайта. Поэтому мне нужно будет обменять файлы: файлы в functions и style Дочерней темы перенести в файлы Родительской темы, и наоборот? Заранее спасибо за ответ.

WPcafe:

Простите, у какого Анатолия? Можете подробно описать, что не получается?

Ольга:

я уже вносила изменения в Родительскую тему и хочу обновить её, при создании Дочерней темы какие файлы мне нужно из Родительской темы переместить в Дочернюю, чтобы мои, ранее сделанные, изменения в Родительской теме не потерялись при обновлении?

Ольга:

Здравствуйте.Вопрос чайника: Если установить сразу шаблон child c сайта wordpress.org, тогда не нужно создавать дочернюю тему для внесения своих изменений? У меня голова уже пухнет от обилия информации, как правильно сделать?

WPcafe:

Дайте пожалуйста ссылкуна эту тему.

Айжан:

ЗДр! Я установила дочер тему, но в functions.php ваш код не проходит, выдает сл. ошибку: Невозможно соединиться с сайтом для проверки кода на ошибки, был сделан откат изменений в PHP-коде. Вам нужно загрузить измененный PHP файл другим способом, например через FTP или SFTP. ВЫ можете помочь? Спасибо!

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