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


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

Темы обновляются по многим причинам:

  • Исправляются различного рода ошибки. Это могут быть javascript-ошибки, доработки стилей для кроссбраузерности, а также доработки по функционалу;
  • Обновляются библиотеки js, css-фреймворки;
  • Добавляются новые возможности. Настройки, новые типы записей, новые таксономии и прочее.

Из всего вышеперечисленного вывод можно сделать довольно однозначный:

Обновлять темы нужно!

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

Избежать этого как раз помогают дочерние темы!

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

Разберем подробнее!

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

Самая простая дочерняя тема содержит всего один файл

style.css

.

/*
Theme Name:     Twenty Ten Child
Theme URI:      https://remontka.com/
Description:    Пример дочерней темы на базе Twenty Ten 
Author:         @remontka
Author URI:     https://remontka.com/
Template:       twentyten
Version:        0.1.0
*/@import url("../twentyten/style.css");

Вы видите пример дочерней темы. В качестве родительской выступает тема Twenty Ten.

Особенности работы

Родительская тема указывается в параметре

Template

, и при этом там должно быть указано не название темы, а название папки, в которой эта тема лежит.

Файл стилей дочерней темы

style.css

полностью заменяет собой файл стилей родителя

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

style.css

из родительской темы.

Файл с функционалом дочерней темы

functions.php

загружается перед аналогичным файлом родителя

Это связано с тем, чтобы:

  • не дублировать код;
  • оставить возможность добавлять функционал, и вносить изменения в существующий.

Именно поэтому правилом хорошего тона является оборачивать каждую функцию в оболочку:

if (!function_exists("function_name")) {
  function function_name() {
    //  Код.
  }
}

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

Остальные файлы оформления шаблона

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

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


admin

Share
Published by
admin

Recent Posts

Настройка Mercurial по HTTPS

Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…

2 недели ago

Компиляция libvirt в Ubuntu

Компиляция libvirt Подробнее

2 недели ago

Ошибка libvirt permission denied: решение

Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…

2 недели ago

Настройка редиректа в NGINX

Файлы с примерами редиректа для nginx Подробнее

2 недели ago

Включение gzip в NGINX

Как включить gzip сжатие в Nginx ? Подробнее

2 недели ago

Удаление postinst-скрипта в Linux

Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…

2 недели ago