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

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

» » Что такое дочерняя тема на WordPress? Плюсы, минусы, и больше. Как Создать Дочернюю Тему WordPress

Что такое дочерняя тема на WordPress? Плюсы, минусы, и больше. Как Создать Дочернюю Тему WordPress

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

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

Зачем нужна дочерняя тема?

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

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

Что можно изменить в дочерней теме?

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

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

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

Создать подтему легко! Ниже создается дочерняя к twentyfifteen тема.

    Создайте папку с любым названием в каталоге тем: wp-content/themes . Пусть twentyfifteen-child

    Создайте в новой папке файл style.css . С содержимым:

    /* Theme Name: Моя дочерняя тема Template: twentyfifteen Не обязательные параметры: Theme URI: http://site.ru/ Description: Дочерняя тема для темы twentyfifteen Author: Kama Author URI: http://site.ru/about/ Version: 1.0 */ /* импортируем стили родительской темы */ @import url("../twentyfifteen/style.css"); /* Свои дополнительные стили */ .foo{ color:red; }

  1. Зайдите во Внешний вид › Темы и активируйте новую тему «Моя дочерняя тема».

Обязательно нужно указать строку Template: twentyfifteen , (строка регистрозависима) она указывает что это подтема темы twentyfifteen.

Директива @import должна быть первым правилом в style.css . Если написать правила перед ней, то она не сработает и стили родительской темы не подключаться.

В результате у нас должна получиться такая структура:

Wp-content └── themes ├── twentyfifteen (родительская тема) └── twentyfifteen-child (подтема; может иметь любое название) └── style.css

twentyfifteen-child может содержать и другие файлы, среди них:

    style.css - (обязательный) полностью заменяет такой же файл родительской темы.

    functions.php - дополняет functions.php родительской темы (загружается перед ним).

    файлы шаблона - index.php , home.php и т.д., которые есть/нет в родительской теме. Если файл есть в дочерней теме, то этот файл полностью заменит родительский файл. Например: создав footer.php и скопировав в него содержимое footer.php из родительской темы, мы можем изменять вывод, не меняя файл родительской темы.

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

Файл style.css

style.css - единственный обязательный файл в подтеме. Дает информацию WordPress, чтобы опознать дочернюю тему.

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

В информационном заголовке, который должен быть в начале файла, является обязательным параметр Template: . Именно по нему WP понимает, что это дочерняя тема и как называется родительская.

Пример style.css дочерней темы.

/* Theme Name: Моя дочерняя тема Template: twentyfifteen Theme URI: http://site.ru/ Description: Дочерняя тема для темы twentyfifteen Author: Kama Author URI: http://site.ru/about/ Version: 1.0 */ // стили родительской темы @import url("../twentyfifteen/style.css"); // дополнительные стили.foo{ color:red; }

  • Theme Name - (обязательно) название дочерней темы.
  • Template - (обязательно) регистрозависимое название папки родительской темы.

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

  • Theme URI - адрес сайта дочерней темы.
  • Description - описание дочерней темы.
  • Author URI - адрес сайта автора дочерней темы.
  • Author - имя автора дочерней темы.
  • Version - версия дочерней темы.

Файл function.php

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

Это значит, что для изменения родительской темы, в functions.php можно использовать хуки и можно «переопределять» функции, если они на это рассчитаны.

Использование хуков

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

Add_action("twentyfifteen_credits", function() { echo "Компания © 2015"; });

Переопределение функции

В файле functions.php родительской темы twentyfifteen есть функция twentyfifteen_fonts_url() - регистрирует шрифты google. Выглядит она так:

If(! function_exists("twentyfifteen_fonts_url")){ function twentyfifteen_fonts_url(){ // код функции... } }

Условие! function_exists("twentyfifteen_fonts_url") - если функция не существует, позволяет определить такую же функцию в functions.php дочерней темы.

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

Например, добавив такой код в functions.php дочерней темы, мы отключим подключение шрифтов:

Function twentyfifteen_fonts_url() { return ""; }

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

If(! function_exists("theme_function")){ function theme_function() { // Код. } }

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

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

Файл шаблона в дочерней теме как и style.css , заменяет файл родительской темы. Т.е. в подтеме можно заменить любой родительский файл, просто создав файл с таким же названием.

Несколько примеров создания файла шаблона в дочерней теме:

#1 Добавление шаблона, отсутствующего в родительской теме

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

Заметки

Форматы записей

Функция add_theme_support("post-formats") переопределит форматы, заданные родительской темой, а не дополнит их.

@import в style.css дочерней темы

Несмотря на то что везде пишут использовать @import в style.css подтемы. Делать это я не рекомендую. Потому что в этом случае браузер не может параллельно загрузить оба файла стилей: от родительской темы и от дочерней... Ему придется загрузить их последовательно: сначала стили дочерней темы, там он увидит @import и только потом начнет загружать стили родительской темы... В итоге получается, что мы теряем в скорости загрузки страницы порядка 200мс. Столько уходит на загрузку файла стилей. Под загрузкой подразумевается отправка запроса на сервер, ожидание ответа, загрузка файла...

Лучше подключить файлы стилей по-отдельности в HTML: сначала стили родительской темы, а затем дочерней, чтобы они были ниже в HTML коде и перебивали родительские стили. Делается это так:

Add_action("wp_enqueue_scripts", "my_theme_styles"); function my_theme_styles() { wp_enqueue_style("parent-theme-css", get_template_directory_uri() ."/style.css"); // не обязательно, правильная родительская тема подключит его сама. //wp_enqueue_style("child-theme-css", get_stylesheet_directory_uri() ."/style.css", array("parent-theme-css")); }

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

https://doctorsmm.com/ - это недорогой сервис с эффективным SMM соц сетей. Здесь Вы сможете получить услуги по раскрутке на более чем 9 топовых площадках, как отечественного, так и зарубежного интернета. Покупайте уже сейчас популярные ресурсы для увеличения счетчиков в соцсетях, такие, как лайки, подписчики и пр., с большими оптовыми скидками и персональными условиями добавления.

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


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

Определились? Отлично, теперь рассмотрим как же создать тему-дополнение .

Дочерняя тема wordpress, что нужно что бы создать

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

  1. Первым делом нам нужно создать папку для нашей будущей уникальной темы.
  2. Затем создать обычный текстовый документ и сменить его название на style.css, открыть который мы сможем при помощи специального редактора notepad++ или же другого того же типа.
  3. В созданном нами файле нужно будет написать правильное заглавие, так называемую шапку файла.

Давайте проделаем все вышеперечисленные операции вместе и по порядку. Начнем с того, что папку нашей дочерней темы WordPress темы нужно создать внутри wp-content/themes. Название можете придумать какое угодно, это никак не скажется на вашем сайте и нигде не будет видно, для наглядности давайте посмотрим на картинку как это можно сделать:

Создали? Ок, идем в нашу папку и создаем файл каскадной таблицы стилей style.css. После создания файла открываем его для редактирования.

Шапка style.css дочерней темы WordPress

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

  • Название дочерней темы , то которое мы придумали для нашей папки, параметр является обязательным для заполнения по этому придумайте адекватное название - «Name».
  • Можно указать адрес вашего сайта на котором будет использована тема - «Theme URI».
  • Описание темы, хоть и биографию свою напишите, не имеет значения - «Description».
  • Имя создателя темы, ваше, вашего соседа или же вымышленное, все зависит от вашего настроения - «Author».
  • Обязательным и точным параметром является название папки родительской темы - «Template».
  • Возможно указать версию вашей дочерней темы например 1.1.5 или что-то в этом роде - «Version».

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

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

Разница между дочерней темой WordPress и созданной уникальной темой.

Следует понимать разницу между дочерней темой и полностью написанной с нуля темой WordPress. лишь вносит изменения и дополнения в использованную нами за основу тему для WordPress. Как же прикрутить наш стиль к стилю родителя? Для этого существует команда. которая стоит выше всех остальных, иначе подключение не получится. Выглядит она так: @import url(«www/mysite.ru/twentyten/style.css»). Выходит что мы берем исходный стиль и пишем дополнения и изменения. Дочерняя тема стоит ниже родительской, по этому сначала грузится родительская, а уж потом поверх мы проводим изменения нашей дочерней, которая и воспроизводится.

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

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

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

Но, если тема регулярно обновляется, то все изменения, внесённые вами, будут сброшены к базовым настройкам.

Так вот, дочерняя тема – это 100% копия родительской темы (основной темы). Все изменения, сделанные в дочерней теме, будут отражаться и в родительской. Но при этом файлы родительской темы не будут меняться. И обновление темы будет проходить с учётом ваших изменений.

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

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

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

Подключаемся к серверу. Через или через файловый менеджер хостинга, это на ваше усмотрение.

Поочерёдно открываем папки:

папка с вашим сайтом

папка родительской темы

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

В папке дочерней темы создаёте файл style.css . Это обязательный файл. Именно он будет отвечать за взаимодействие родительской и дочерней тем.

Настройка файла style.css дочерней темы WordPress

Файл style.css в дочерней теме должен содержать информацию о родительской теме. По ней WordPress поймет, между какими темами организовано взаимодействие.

Так же файл style.css в дочерней теме заменяет этот же файл в родительской теме. И поэтому нужно обязательно подключить стили из родительской темы.

Итак, приступим.

Откройте файл style.css (я обычно создаю этот файл на своём компьютере в редакторе Notepad++, а потом копирую его в папку дочерней темы на хостинг).

Вставьте в файл style.css вот этот код:

/* Theme Name: Название темы (английскими символами) Theme URI: url адрес темы Description: Описание темы Author URI: url вашего сайта или страницы об авторе Template: название родительской темы (с соблюдением регистра) Version: 1.0.0 */

Вот пример, как выглядит этот код в моей новой теме.

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

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

Для подключения стилей из родительской темы нужно прописать всего лишь одну строчку кода:

@import url("../папка родительской темы /style.css");

Как вы понимаете – это условный путь к файлу стилей в родительской теме. Вы также можете прописать полный путь (абсолютный) к файлу стилей родительской темы.

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

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

Какие файлы можно хранить в папке дочерней темы

В этой папке вы можете хранить хоть все файлы родительской темы. Но, это вовсе не обязательно. Храните лишь те, с которыми вы будете работать. В которых будете делать изменения. Разберём несколько примеров.

Файл функции темы functions.php

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

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

Вот скажем, у меня в текущей теме постоянно была проблема с тем, что путались заголовки H1 и H2. Решение этой проблемы я раскрыл в . А в своей новой теме, я могу реализовать это через файл functions.php. Добавив лишь вот такой код:

Add_filter("tc_site_title_tag", "change_tag"); function change_tag() { if (!is_single () && !is_page ()) return "h1"; if (is_single () || is_page ()) return "p"; }

А всё потому, что моя новая тема, полностью построена на API ключах WordPress.

Основные файлы темы (шаблона)

После активации дочерней темы в административной панели вы не сможете редактировать основные файлы темы (single.php, page.php, index.php …). Потому, что их просто там не будет.

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

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

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

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

А теперь смотрим видеоурок и можно приступать к созданию дочерних тем.

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

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

На сегодня всё, до встречи в новых видеоуроках и статьях. И конечно же, если будут вопросы, пишите в комментариях, буду рад помочь. Желаю вам удачи и хорошего настроения!

Подписывайтесь на новые статьи!

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

  • Василий

    Очень интересная тема. Сразу появилось несколько вопросов.

    1. Максим, а использование дочерней темы как-то влияет на скорость загрузки сайта?

    2. Я использую специальный плагин Function.php для вставки кода в файлы темы. Если дополнительно использовать еще дочернюю тему, например, для микроразметки. Возможно ли такое?

    3. Если копировать полностью файлы с родительской темы, то после обновления темы ничего не изменится. А ведь автор может что-то оттуда удалить. Нам нужно сохранить только определенные строки кода, а остальные изменения пусть происходят. Такое возможно?

    • Вася, привет. Дочерняя тема в действительности расширяет границы в доработках темы под свои нужды.
      1. На скорость загрузки дочерняя тема не влияет. Всё зависит от самой родительской темы и от кода, который мы вставляем в дочернюю тему. Если все доработки валидные, то и скорость загрузки будет на высоте. Я тестировал на GTmetrix и Pingdom. Главное чтобы родительская тема была шустрая.
      2. Функции темы в дочерней теме это по сути дела все наши доработки собранный в плагин Function.php. Так, что свободно можно использовать плагин и не лезть в файл функции темы. Ну и соответственно всю микроразметку нужно создать в дочерней теме.
      3. Все файлы копировать не нужно. Лишь те, в которых делаем изменения. Так файлы родительской темы остаются в оригинале. Файлы обновляются с учётом наших доработок. Я уже проверил.

  • Сергей Стеклов

    У меня почему-то при обновлении темы Customizr слетает дочерняя тема. И все из-за отредактированных файлов, которые лежат в папке inc —> parts. А именно:
    class-content-featured_pages
    class-content-post_navigation
    class-content-slider
    class-footer-footer_main
    class-header-header_main
    Когда эти файлы удаляю, то дочерняя тема с обновленной родительской работаете нормально. Но сейчас у меня Customizr 3.3.26 работает с дочерней нормально. На как только начинаю обновлять родительскую, то дочерняя слетает. Получается, что приведенные выше файлы вообще, нельзя редактировать, так как с новой версией темы старые копии файлов могут не работать. Уже точно не помню, что именно в них менял. Но вроде точно убирал ссылку на разработчика в подвале, редактировал слайдер и еще что-то. Тема не Pro, то есть используется бесплатный вариант.

  • Наталья

    На WP делаю второй сайт, использую готовые шаблоны. Второй сайт пока на Денвере, WordPress с темой оформления Storefront. Сама тема разработана под интернет-магазин, интегрируется с плагином магазина WooCommerce. Проблема в том, что Storefront уже является дочерней темой Twenty Ten. Вопрос: как быть в таком случае — создавать дочернюю тему от дочерней? Или оставить всё как есть? И что будет, если в процессе работы сайта просто НЕ ОБНОВЛЯТЬ ТЕМУ? Какие могут быть последствия (без обновлений)? И второй вопрос: если не обновлять тему, но регулярно обновлять движок магазина (WooCommerce) — возникнут ли в дальнейшем какие-нибудь фатальные конфликты? Заранее благодарю за ответ!

  • Тата

    Спасибо за подробную и понятную информацию по дочерним темам. Сделала все, как написано. Обновила и движок, и тему — работает все, кроме плагина wppage. Теперь страницы, сделанные с его помощью отображаются как обычные страницы с сайдбаром установленной темы. Предполагаю, надо где-то прописать template_include для страниц wppage. Но моих познаний явно не хватает. Можете подсказать, Максим?

  • Лариса

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

    • Лариса, такое бывает, когда в дочерней теме прописан путь к папке или файлу, которого нет в родительской. Нужно попробовать в дочерней теме создать только файл стилей без папок и других файлов. Когда тема подключится, то уже можно постепенно переносить нужные файл и в конечном итоге будет понятно что нарушает работу сайта.
      Я в таких случаях работаю через ftp соединение, копирую файл и проверяю работу. Если сайт перестал работать, значит причина в этом файле. Удаляю его — сайт начинает работать. А я выясняю причину, что в нём не так.

      • Лариса

        Спасибо за идею! Сделала так: создала папку с дочерней темой и файлом style.css. Активировала дочернюю тему из админки и получила сайт, лишенный стилей. Иногда такая картина бывает при медленном соединении интернета. У меня такие сайты на локалке получались во время осваивания html)))))))))) В теме много настроек, виджетов. Есть спец. поле для создания своих стилей. Попробовала в это поле скопировать полностью CSS родительской темы, получила какую-то кашу из виджетов (подвальные «налезли» на виджеты хедера)… Не понимаю, почему стили не подключаются по человечески… Кстати, в этой теме два файла functions… Один из них лежит в дополнительной папкеп со своим названием.

  • Лариса

    Максим, в кодексе ВП написано, что можно создать в дочерней теме файл functions.php, который будет подгружатся в дополнение к родительскому. В нем можно написать директивы, которые будут переопределять директивы из родительской темы. Плюс написать свои директивы. Стили родительской темы так и не подключились у меня через импорт в файле css. Пришлось это сделать через дочерний файл functions.php. Через этот же файл сделала транслитерацию. Сайт в рабочем состоянии. Но! У меня не получилось переопределить функцию копирайта в подвале сайта (там ссылка на разработчика и на вордпресс).

    • Лариса

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

    • Лариса, да именно через файл functions.php дочерней темы вносятся все изменения и они не слетают при обновлении родительской темы. Но, это хорошо работает на современных тема, где всё завязано на API.
      С копирайтом, если не получается изменить его в отдельности, то менять нужно весь выше стоящий блок. Или файл подвала можно скопировать в дочернюю тему и изменить копирайт. Так гораздо проще. 😉

  • Наталья

    Да, жаль, что я время упустила. Поздно нашла вашу статью.
    я сделала блог для своего мужа, а у него при каждом обновлении темы пропадает картинка в шапке и информация в футере. Каждый раз после обновления приходится всё это корректировать. Благо у меня всё это сохранено в еверноте и много времени на это тратить не приходится. Но напрягает.
    Теперь, если придётся создавать новые сайты, буду сразу делать дочернюю тему.
    Спасибо за подробный урок. Александр

    Здравствуйте, Максим!
    При вставке доработанных файлов с микроразметкой, возникают проблемки. Я уже говорил Вам, что не особо владею языком програмирования. Вот, например при вставке файлов sidebar-left и sidebar-right с доработкой, вы не указали, как правильно их в теги заключить, и на сайте остается только хейдер. Опять же при вставке class-content-page с микроразметкой по Вашим урокам, правый сайд-бар в страницах слетает под левый. А про functions я вообще ничего понятного не нашел ни где — при его вставке в любом виде (оригинал или с доработкой из уроков микроразметки), сайт становится недоступен. А ведь именно он, я так понимаю, является одним из основных элементов для правильного функционирования дочерней темы. Остальные файлы становятся нормально, только Яшка ругается на подвал (гугл нет): ПРЕДУПРЕЖДЕНИЕ: значение «© 2016» в поле copyrightYear не является корректным значением числа. Вывод статей у меня не с главной настроен, по этому, сами понимаете, при редактировании приходилось искать другие номера строк. Показ анонсов, тоже по другому. Не показываю теги рубрик, даты и автора — в Search Console куча урлов с ошибками появляется. В общем, гуглю, гуглю, а в итоге снова к Вам попадаю. Если сможете, что-нибудь подсказать — буду благодарен!

    И это вызывает некоторые неудобства. Например, тема не переведена на русский язык. В папке languages есть только один файл nepalbuzz.pot. Допустим, в окне поиска высвечивается слово «Search…» Я хочу поменять его на «Поиск… » В файле nepalbuzz.pot нахожу такую строку, она ссылается на файл inc/default-options.php. Там тоже нахожу такую строку.
    Но менять в родительской теме файлы не рекомендуется.
    У меня уже создана дочерняя тема nepalbuzz-child. В style.css все указал, как положено.
    И вот я хочу изменить файл default-options.php, скопированную в папку nepalbuzz-child/inc. Но чтобы изменение вступило в силу, мне придется скопировать туда и core.php и указать ссылку на него в function.php.
    Но ведь в этом core.php содержатся ссылки и на другие файлы в родительской теме и в nepalbuzz-child их нет. Придется их все перенаправлять в родительскую тему?
    Короче, возникает путаница со ссылками.
    А если просто, не мудрствуя, скопировать ВСЕ содержимое родительской темы в дочернюю? Не возникнет ли проблем? Будут ли файлы меняться при обновлении темы? И обязательно ли при этом указывать в style.css родительскую тему?

  • Ольга

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

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

Для подобных случаев в 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? Мы уже объяснили, что такое фреймворк WordPress в наших предыдущих статьях. В этой статье, мы сделаем все возможное, чтобы ответить на вопросы, как что такое вторичная тема WordPress, когда вы должны создать дочернюю тему, зачем люди создают дочерние темы, и наконец преимущества и недостатки использования дочерней темы. Мы надеемся, что после прочтения данной статьи вы будете иметь четкое понимание того, что такое дочерняя тема в WordPress, и вы будете знать, следует ли вам использовать дочернюю тему или нет.

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

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

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

В теории, любая тема WordPress может иметь дочерние темы, однако не все темы WordPress имеют хорошие родительские темы. Родительская тема с ограниченным функционалом и особенностями, это не идеальный кандидат родительской темы в большинстве случаев. Мы будем говорить об исключениях см. далее в статье.

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

Почему люди используют дочерние темы WordPress?

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

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

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

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

Для пользователей мы рекомендуем дочерние темы только если вы окажетесь постоянно добавляем новые функции для вашей темы в файл functions.php и/или постоянно добавляя/изменяя файл style.css вашей темы. В этих случаях мы настоятельно рекомендуем использовать дочернюю тему. Некоторое время назад во время нашей встречи говорили о WordPress, один из членов спросил нас, что если только добавлять пользовательские стили? Лучше использовать дочернюю тему или пользовательские CSS плагины?

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

Выбирать хорошую родительскую тема важно

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

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

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

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

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

Как и в большинстве случаев, существуют преимущества и недостатки использования дочернюю тему в WordPress. Давайте взглянем на преимущества первого.

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

2. Легко расширяется

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

3. Резервный Безопасный

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

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

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

Другой недостаток часто указывал на то, что разработчики вашей родительской темы могут потерять интерес и отказаться от нее, падение функции, которые Вы использовали в вашей дочерней теме, или принести изменение, которое полностью разрушает вашу дочернюю тему. Это не так плохо, как кажется. В основном потому, что все хорошие темы WordPress с открытым исходным кодом и GPL. Если Разработчик родительской темы покидает проект, то ничего и не говорит, что вы должны отказаться от его использования. Часто бывают времена, когда другие люди один за другим занимаются над проектом. Если разработчик из исходной темы удалит определенную функцию, тогда вы можете просто добавить его в вашу дочернюю тему. У вас есть Код для него. Наконец, если они делают резкие изменения, которые вам не нравятся, то вы всегда можете избежать обновления. Тема обновления имеет решающее значение, когда её безопасно эксплуатировать. Мы всегда рекомендуем пользователям обновлять темы, потому что это помогает обеспечить в будущем совместимость с другими скриптами и плагинами.

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

Вывод

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

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