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

Автор:
Nurlan Kemelbekov

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

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

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

Создание дочерней темы не трудно — все, что вам нужно сделать, это создать одну папку и один файл.
Вам понадобится доступ к вашему сайту через FTP либо файловый менеджер хостинг-провайдера. Я бы порекомендовал использование программного обеспечения, такие как Filezilla, так как здесь проще добавлять и редактировать файлы и папки.
1. Создание папки дочерней темы.

После того, как вы вошли в корень веб-сайта с помощью выбранного вами FTP-клиента, перейдите в раздел «/ wp-content/themes /».
В этом каталоге создайте новую папку. Вы можете назвать ее как угодно, но я бы рекомендовал вам использовать описательное имя, например «grainyflex child » (где «grainyflex» это имя активной темы).
Вот пример:
дочерняя тема1
дочерняя тема1.png2
Как вы можете заметить, здесь активная тема «grainyflex», поэтому я создал папку «grainyflex-child».

2. Создание файла style.css дочерней темы сайта
Как только вы создали папку, нужно добавить один файл, который требуется для создания дочерней темы — style.css. Как вы, наверное, догадались, этот файл будет работать в качестве дополнения файлу style.css родительской темы.
Вам нужно разместить некоторые жизненно важные сведения внутри этого файла. Так что откройте свой любимый текстовый редактор и вставьте следующее в пока еще пустой файл:
/*
Theme Name: Моя дочерняя тема
Theme URI: http: //maks-1.com/
Description: Это специальная дочерняя тема.
Author: NurKem
Author URI: http: //maks-1.com/
Template: grainyflex
Version: 0.1
*/
Эта информация носит общий характер и вы можете изменить его в соответствии с вашими потребностями. Здесь только одна переменная, которую вы должны изменить для того, чтобы ваша дочерняя тема функционировала — » Template » Эта переменная необходима для того, чтобы соответствовать имени папки вашей активной темы.
Еще одна важная вещь, которую вы должны сделать. Если бы вы загрузили этот файл в его текущем состоянии и активировали вашу дочернюю тему, WordPress примет файл style.css вашей дочерней темы, как файл стилей по умолчанию, и ничего не покажет. В результате, ваша тема окажется без абсолютно никакого стиля CSS. Поэтому вам нужно указать CSS файл родительской темы внутри файла style.css вашего дочерней темы следующей строкой кода:
@import url(«../grainyflex/style.css»);
Как и в переменной выше, вам необходимо изменить «grainyflex», чтобы соответствовать имени родительской темы. Если таблица стилей по умолчанию является не style.css (это почти наверняка будет), вы также должны изменить его соответственно.
После добавления в этих двух фрагментах необходимой информации, сохранить новый файл style.css в папке дочерней темы.
дочерняя тема
3. Активация дочерней темы
Все, что осталось сделать сейчас, это активировать дочернюю тему WordPress.
Перейдите в раздел «Внешний вид> Управление темами» в панели администратора WordPress. В верхней части экрана вы увидите, что родительская тема активна, но вы также должны увидеть вашу новую дочернюю тему, среди прочих перечисленных:
текущая тема
моя дочерняя тема

Информация, которую вы включили в файл style.css дочерней темы (такие, как » Theme Name » и » Author «), будет отображаться на экране. Для отображения скриншота создайте другую картинку размером 320*240 и назовите, как screenshot.png или просто скопируйте скриншот из папки материнской темы и загрузите в директорию дочерней темы.

Теперь просто нажмите «Активировать» и ваша дочерняя тема будет в прямом эфире! Ваша дочерняя тема будет отображаться в качестве активной темы:
активация дочерней темы

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

4. Дальнейшие изменения и дополнения.
На данный момент, вы можете подумать, «Изменение CSS темы это все хорошо, но что, если я захочу внести изменения в файлы PHP в родительской теме»?
Справедливый вопрос, и ответ на удивление прост. Если вы хотите внести изменения в конкретном файле PHP родительской темы, просто сделайте копию и вставьте эту копию в папку вашей дочерней темы.
Тот же самый процесс применяется, если вы захотите создать новые файлы PHP , такие как шаблоны страниц. Просто создайте новый файл в каталоге дочерней темы, включите соответствующую информацию и все.
То же самое касается шаблонов, которые могут быть не в вашей родительской теме. Вы можете добавить их в дочернюю тему WordPress и использовать их.

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

Это тоже очень легко, все, что вам нужно сделать, это создать PHP файл с именем functions.php внутри папки childtheme и добавить следующее:

<?php //Открытие PHP тега

// Пользовательская функция здесь

?>//Закрытие PHP тега

Иногда эти вещи могут не работать так, как ожидалось. Некоторые темы не имеют ссылку на файл style.css, так что если ваши изменения CSS не работают, проверьте, чтобы убедиться, что есть ссылка stylesheet в header. При необходимости добавьте следующий код в файл header.php.

<link rel="stylesheet" type="text/css" media="all" href="<?php echo get_stylesheet_uri() ?>" />

Одну вещь вы должны иметь в виду, что структура каталогов в дочерней теме должна совпадать с родительской темой. Поэтому если вы решили изменить PHP файл в формате «/parenttheme/includes/external/php/example.php «, вы должны поместить его в «/childtheme/includes/external/php/example.php «.

Как удалить ненужные скрипты?
Ответ, отмена регистрации скрипта в файле functions.php.
В приведенном ниже примере я хочу отменить регистрацию сценарий FlexSlider, потому что моя дочерняя тема не использует эту функцию.

function remove_flexslider()
{
wp_deregister_script( 'flexslider' );
}

add_action( 'wp_print_scripts', 'remove_flexslider' );

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

Всегда сделать резервную копию темы сайта

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




Вам также может понравиться:


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

  1. Здравствуйте! У меня в папке с родительской темой, помимо основного файла functions.php есть еще один файл functions.php, но он лежит в подпапке. Оба эти файла используются родительской темой. И для дочерней темы мне нужно внести изменения в оба. Как в таком случае поступить? Заранее спасибо за ответ

    • Здравствуйте. Файл functions.php дочерней темы создается для добавления дополнительных функций темы сайта, которых нет в файле functions.php родительской темы, а не для изменения существующих функций, которые уже прописаны в основной теме разработчиком шаблона сайта.

  2. Статья интересная, но есть НО… 2 пункт слегка перемудрили, читаешь и не совсем понятно. Ну и честно говоря, не на всех темах работает. Вот с моей не вышло, шаблон так перекосило, что пришлось искать другой вариант, как сделать дочернюю тему. Но за попытку СПАСИБО!

    • Спасибо за комментарий и замечание. Возможно, «шаблон перекосило» потому, что у Вас присутствует несколько css файлов в теме сайта. Такие как default_font-css, default_title_font-css, zeeMinty_stylesheet-css. А в статье есть замечание, что «Если таблица стилей по умолчанию является не style.css (это почти наверняка будет), вы также должны изменить его соответственно.»

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

* Copy This Password *

* Type Or Paste Password Here *

семнадцать + 4 =

Я просто хотел сказать, как сильно я ценю Ваш комментарий на мой пост. Спасибо Вам !!