Отже, у вас на сайті є тема для WordPress, неважливо безкоштовно або комерційна, і ви хочете її налаштувати. Скрізь даються рекомендації робити це, створивши дочірню тему. Але що це означає і як це зробити?

Що таке дочірня тема?

WordPress Codex визначає дочірню тему (child theme) наступним чином:

Дочірня тема WordPress (child theme) це тема, яка успадковує функціональність іншої теми, називається батьківською (parent theme), і дозволяє змінювати або додавати функції до батьківського темі.

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

По суті, дочірня тема WordPress працює разом з оригінальною, але заміщує зазначені вами її частині, не вносячи реальних змін в саму оригінальну тему.

Навіщо взагалі використовувати дочірню тему?

Якщо на вашому WordPress-сайті вже встановлена безкоштовно або комерційна тема, то це чудова можливість адаптувати її під свої потреби. Можливо, ви хочете налаштувати деякі кольору, додати сайдбар, змінити відображення деяких записів або що завгодно ще.

Уявіть, що в один прекрасний день ви зайшли в панель адміністрування свого сайту і побачили, що доступне оновлення для встановленої теми. Можливо, це виправлення будь-яких помилок в CSS або безпеки теми.

Якщо ви натиснете кнопку «Оновити», то змінені вами в оригінальній темі файли будуть заміщені оновленими! Всі зміни будуть втрачені, і вам доведеться починати все спочатку.

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

Тепер зрозуміло, навіщо, але що робити далі?

Ваша оригінальна тема, яку ми називаємо також батьківського темою, знаходиться в папці /wp-content/themes/.

Для прикладу, ми створимо дочірню тему для WordPress, засновану на стандартній темі «Twenty Twelve».

В даному випадку, щоб створити дочірню тему, нову папку поруч з папкою теми «Twenty Twelve» і назвемо її twentytwelve-child:

Вміст файлу стилів style.css в папці дочірньої теми потрібно змінити наступним чином:

/*
Theme Name: Twenty Twelve Child
Theme URI: http://wp.tutsplus.com/
Опис: Child theme for Twenty Twelve
Author: Japh
Author URI: http://wp.tutsplus.com/author/japh
Template: twentytwelve
Версія: 1.0.0
*/
@import url(«../twentytwelve/style.css»);

У цьому коді є дві найважливіші рядки:

  • Template: twentytwelve – яка повідомляє WordPress, що дана тема є дочірньою по відношенню до теми «Twenty Twelve»;
  • @import url(«../twentytwelve/style.css»); – яка завантажує файл стилів style.css з батьківського теми (в нашому випадку це twentytwelve).
  • Тепер, ви можете увійти в панель управління WordPress, побачити там тему «Twenty Twelve Child» і активувати її.

    Примітка:

    Рядок з оператором @import не є строго обов’язковою для того, щоб дочірня тема була валидной. Я включив її для того, щоб простіше було робити модифікації.

    Я створив свою дочірню тему! Що тепер?

    Тепер, кожного разу, коли ви захочете внести зміни в свою тему, всі маніпуляції треба робити з вашої дочірньої темою.

    Файли з директорії вашої дочірньої теми заміщають однойменні файли в папці батьківського теми. Тому будь-який файл, який ви хочете змінити, слід спочатку скопіювати з папки з батьківського темою в папку з доньок, після чого можна вносити правки.

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

    Виняток становить лише файл functions.php. Спочатку завантажується файл functions.php з дочірньої теми, а за ним functions.php з директорії батьківського теми. Тому немає необхідності копіювати functions.php з батьківської папки в дочірню, просто змініть його в папці з дочірньою темою.

    Вищеописаний механізм дозволяє взяти всю функціональність з батьківського теми. До батьківських тем також можна підключати додаткові функції (pluggable function) і змінити їх з дочірніх без виникнення конфліктів.

    Що значить pluggable function?

    Якщо коротко, що pluggable function це механізм перевірки на те, оголошена чи була функція раніше чи ні. Це запобігає конфлікти у випадку, коли в дочірній темі оголошується функція з вже існуючим батьківської темі ім’ям.

    Висновок

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

    Переклад статті «How to Customize Your WordPress Theme With a Child Theme» був підготовлений дружною командою проекту Сайтостроение від А до Я.