Photoshop дозволяє вам редагувати зображення, використовуючи шари, не змінюючи оригінальне зображення. Ви можете використовувати схожий принцип при налаштуванні WordPress тем. Такий підхід має істотну перевагу — можливість відкотити зміни та зберегти оригінальні файли абсолютно недоторканими. Найшвидший і найпростіший спосіб розпочати таке акуратне редагування. створення дочірньої теми.
Дивіться також:
Що таке дочірня тема?
Дочірня тема - Це тема, яка успадковує властивості та функції іншої теми, так званої батьківської теми. Ви можете редагувати, змінювати та додавати нові можливості та функції, тому що файли теми-нащадка мають пріоритет при обробці та відображенні на екрані перед батьківською темою.
Що вам знадобиться
Перш ніж ми почнемо редагувати файли, потрібно підготувати кілька речей. По-перше, вам знадобиться FTP-доступ до вашого WordPress сайту. Без живого WordPress сайту ви не зможете побачити зроблені вами зміни. Далі вам знадобиться текстовий редактор. І, нарешті, батьківська тема, наприклад, стандартна тема Двадцять дванадцятьяка поставляється з WordPress.
1. Створення дочірньої теми
Все, що вам потрібно, щоб створити тему-нащадок - одна папка і один файл. Перейдіть до папки WP-зміст / теми за допомогою вашого клієнта FTP. Ви побачите кілька папок, які названі відповідно до встановлених тем. Створіть нову папку та дайте їй відповідну назву, наприклад twentytwelve-child або parenttheme-child.
Перейдіть до папки та створіть CSS файл під назвою style.css, потім додайте до нього наступну інформацію, заповнивши поля своїми даними:
/* Theme Name: Twenty Twelve Child Theme URI: https://example.com/ Description: Child theme for the Twenty Twelve theme Author: Your name here Author URI: https://example.com/about/ Template: Folder name of the parent theme Version: 0.1.0 */
На завершення цього кроку ви отримуєте робочу дочірню тему.
2. Імпорт CSS від батьківської теми
Тепер, коли у вас є створена потрібна папка та файли, ми імпортуємо CSS батьківської теми. Додайте цей рядок коду у ваш CSS файл:
@import url(“../parenttheme/style.css”);
Цей код скаже вашій темі-нащадку успадкувати всі CSS властивості та налаштування, які зберігаються в CSS батьківської теми.
3. Активація дочірньої теми
Щоб активувати нову тему, просто зайдіть у консоль WordPress та знайдіть сторінку Зовнішній вигляд → Теми. Якщо ви виконували попередні кроки, ви повинні побачити вашу дочірню тему в списку тем для вибору.
Просто натисніть Активуватиі ваш WordPress сайт тепер буде використовувати вашу дочірню тему. Якщо ви подивитеся на ваш WordPress сайт, ви не побачите змін, тому що ми поки що не робили жодних змін у нашій копії батьківської теми.
4. Налаштування дочірньої теми
Ось де починається веселощі! :) Тепер, коли все готове, ми можемо розпочати зміни у батьківській темі. Як ми пояснили раніше, файли теми-нащадка перезапишуть файли, які зберігаються у папці батьківської теми. Отже, ми можемо створювати варіації батьківської теми без редагування файлів ядра. Вам потрібно не забувати про те, що у вас завжди має бути робоча версія вашої батьківської теми в папці з темами, а також стежити за тим, щоб ваш @import вказував на правильне місце.
Почніть вносити зміни до CSS і дивіться зміни на вашому сайті.
5. Використання functions.php
Якщо ви збираєтеся додати до вашої батьківської теми якісь функції WordPress, вам потрібно створити файл functions.php всередині папки вашої дочірньої теми. Додайте нові функції до нового файлу і вони будуть завантажуватися одночасно з функціями батьківської теми.
Файл functions.php у вашій дочірній темі не перезаписує цей файл у вашій батьківській темі, натомість вони обидва будуть завантажені. Якщо ви робите зміни безпосередньо у файлі functions.php ядра, вам доведеться робити ці зміни щоразу після оновлення. Використання файлу functions.php усередині вашої нової теми вирішить цю проблему.
6. Редагування PHP-файлів
Зміни в PHP файли вашої батьківської теми мають той же принцип, що редагування CSS. Будь-які файли всередині вашої теми-нащадка перезапишуть відповідні файли батьківської теми. Наприклад, якщо ви бажаєте відредагувати файл header.phpВам потрібно створити новий header.php у папці теми-нащадок і внести зміни до цього файлу. WordPress буде використовувати цей новий header.php замість версії із батьківської теми.
Також ви можете додати до вашої нової теми нові PHP-файли, яких не було в батьківській темі. Це дозволить створювати більше окремих сторінок та шаблонів, які потім можуть бути використані WordPress.
7. Відкат змін
Як тільки вам потрібно відкотити зроблені вами зміни, все, що вам потрібно зробити. активувати батьківську тему — і ви будете знову там, звідки починали. У цьому вся принадність використання дочірніх тем: ви можете створити кілька варіантів і легко перемикатися між ними, зберігаючи при цьому оригінальну тему.
Дочірні теми – відмінний та безпечний метод зміни вашої WordPress теми. Вони не тільки дозволяють вам експериментувати та вносити зміни без впливу на вашу батьківську тему, це також гарна практика для використання тем замість редагування файлів теми безпосередньо.
Коментарі до запису: 17
Чудова стаття. Питання новачка у WP:
— для індексації у пошукових системах необхідно на сайт додати код. У цьому випадку теж потрібно створювати файл .php у дочірній темі?
Ви можете використовувати плагін Google Analytics for WordPress, який зробить все самостійно у випадку Google. Або так, потрібно використовувати цей код у дочірній темі.
спасибі.
Резюме: БУДЬ-ЯКА зміна в стилі та коди вносимо в дочірній темі, якщо хочемо, щоб вона збереглася ))
Я не розумію, навіщо створювати дочірню, якщо можна відредагувати батьківську тему… чи я чогось не знаю?
Скажімо так, це безпечний спосіб створення кількох варіантів однієї і тієї ж теми, але з різними додатковими можливостями та функціями. Без необхідності відкривати код щоразу при зміні теми.
Зміни у файлах php та css потрібно робити у дочірній чи батьківській темі? І я правильно розумію, що після поновлення батьківської теми зміни залишаться?
У дочірній! У цьому і весь сенс, щоб отримати зміни на сайті без внесення правок в код оригінальної батьківської теми. Після оновлення батьківської все одно насамперед будуть застосовані функції та стилі з дочірньої, а решта братимуться з батьківської.
Зрозумів спасибі! :)
«Тепер, коли все готове, ми можемо розпочати зміни у батьківській темі. »
У вас дар заплутувати!
Хм.. щось не виходить у мене. Є в батьківській темі файл наприклад theme/include/widgets.php я створюю каталог у дитячій темі, копіюю з батьківської теми файл який хочу виправити виходить /theme-child/include/widgets.php і роблю зміни в ньому, але нічого не відбувається. У батьківській правлі змінюється, що я роблю не так?
Для початку потрібно створити саму дочірню тему, а потім активувати її в меню Зовнішній вигляд — Теми. А вже після цього створювати дублікат файлів та вносити правки до коду. Читайте уважно урок.
не бачить дочірня тема підкаталоги((( коли правлю хедер який лежить разом із css файлом виправлення є, а якщо у мене ще один хедер лежить у inc/structure? там прав не прав — побарабану)
Та ж біда. І виразної відповіді так і не отримав.
Доброго дня! Користуюся дочірньою темою вже давно, але днями на сайті з'явилася помилка і потрібно було оновити батьківську тему, оскільки вона вимагала оновлення. На мій страх всі налаштування відлетіли, незалежно від того, що я користувалася дочірньою темою і активована була, саме, вона. Довелося відновлювати з бекапу. Чи не підкажіть у чому могла бути причина?
Я приїхав/купив нову тему для заміни старої. Отримав основну та дочірню. Яким чином їх потрібно активувати? Як зробити правильно?
Встановлюєте на WordPress обидві теми, але активуєте одразу дочірню та з нею далі працюєте.
Дякую за зрозумілу статтю! Але залишилося неосвітленим одне питання: Як не замінити властивість елемента на своє, а взагалі видалити його з файлу стилів. Якщо його просто не вказувати у файлі style.css дочірньої теми, він підхоплюється з style.css батьківської теми. Наприклад, як видалити наступне:
.woocommerce-tabs ul.tabs li {
Дисплей: вбудований блок;
запас: 0;
border-bottom: 1px суцільний rgba(0,0,0,.05);
посада: відносна;
}
Необхідно видалити "position: relative;"
Такий варіант:
.woocommerce-tabs ul.tabs li {
Дисплей: вбудований блок;
запас: 0;
border-bottom: 1px суцільний rgba(0,0,0,.05);
}
не дає результатів!