WebMaster.bg

уеб технологии за начинаещи

връзки към другите страници на сайта
Сайтове и WordPress

Дъщерна тема на WordPress (child theme) и защо ви трябва

Какво е дъщерна тема на WordPress (child theme), как пази промените по дизайна при обновяване и как да я направите със style.css и functions.php.

От Редакция на WebMaster.bg Публикувано: 5 мин. четене
Близък план на лаптоп с отворен редактор Sublime Text, в който се вижда JavaScript и CSS код с цветово осветяване на синтаксиса
Снимка: Marc Mueller seven11nash / Wikimedia Commons · CC0, източник

Дъщерната тема на WordPress (на английски child theme) е отделна тема, която държи вашите промени, а всичко останало взема от основната тема. Когато обновите основната тема, нейните файлове се сменят, а тези в папката на дъщерната остават недокоснати, така че дизайнът ви се запазва (WordPress.org, Theme Handbook, Learn WordPress). Ако сте редактирали директно файловете на готова тема, следващото обновяване ги презаписва.

Накратко:

  • Дъщерната тема е разширение на основната и не я заменя (WordPress.org, Theme Handbook).
  • За да съществува, ѝ трябва един-единствен файл, style.css.
  • Полето Template в този файл трябва да съвпада точно с името на папката на основната тема.
  • При проблем поправяте или изтривате файла в папката на дъщерната тема, а основната остава недокосната (Learn WordPress).

Какво губите при обновяване без дъщерна тема

Всяка промяна, направена директно в тема, плъгин или файл на ядрото, се изтрива при обновяване (Learn WordPress). Грешка в такава ръчна редакция може да остави темата неработеща. Подобни "преправки" понякога махат елементи, на които разчитат самият WordPress или плъгини.

Отказът от обновяване не е изход. WordPress стои зад около 58,3% от сайтовете с известна система за управление на съдържание (W3Techs). Такъв обем привлича нападатели: през 2024 г. Patchstack отчита 7 966 открити уязвимости в екосистемата, от които 326 (4%) са в теми, а 7 633 (96%) са в плъгини (SecurityWeek). Нашият извод: темите рядко са най-слабото звено, но вече известна дупка в остаряла тема остава отворена, ако сте спрели обновяванията от страх да не загубите дизайна. Дъщерната тема премахва този страх.

Как работи дъщерната тема

Тя се зарежда преди основната и съдържа само вашите промени и допълнения (WordPress.org, Theme Handbook, Learn WordPress). Всеки шаблон, част или модел можете да замените, като добавите файл със същото име в папката ѝ. Новите шаблони също се добавят там.

С файла functions.php е различно. Този на дъщерната тема не замества този на основната, а двата се зареждат, като дъщерният е пръв (WordPress.org, Theme Handbook). Затова не копирайте код от functions.php на основната тема в дъщерната: дублираните имена на функции водят до фатални грешки.

Как се прави дъщерна тема на WordPress

Преди да започнете, направете резервно копие на сайта и на папката wp-content/themes. Времето за работа е около десетина минути, ако имате достъп до файловете през хостинга или по SFTP. Ако още не сте сигурни как се поддържа сайтът, прегледайте основите на WordPress.

  1. Създайте нова папка в wp-content/themes. Наименувайте я с малки букви и без интервали (Learn WordPress).
  2. Добавете в нея файл style.css със заглавен коментар. Редът Template: трябва да съвпада със сто процента с името на папката на основната тема, например twentytwentyfour за Twenty Twenty-Four (WordPress.org, Theme Handbook).
  3. Добавете functions.php, ако основната тема не зарежда сама стиловете на дъщерната. Twenty Twenty-Four не зарежда стилове, затова дъщерната трябва да ги зареди със get_stylesheet_uri().
  4. Използвайте wp_enqueue_style() на куката wp_enqueue_scripts. Посочете стила на основната тема като зависимост, за да се зареди първи.
  5. По желание добавете screenshot.png с размер 880 на 660 пиксела, за да изглежда темата завършена в списъка.
  6. Отворете Appearance > Themes в таблото и активирайте дъщерната тема.

Не ползвайте остарелия метод с @import в style.css, защото ръководството го препоръчва да се избягва (Learn WordPress).

Как да променяте дизайна през дъщерната тема

За цветове и размери добавете в style.css правила със същите селектори като в основната тема. Например .site-title презаписва заглавието на сайта (Learn WordPress). За промяна на шаблон като footer.php копирайте файла от основната тема в папката на дъщерната и редактирайте копието.

Блоковите теми са малко по-различни. Стиловете им се водят основно през theme.json, така че зареждането на style.css често не е нужно (WordPress.org, Theme Handbook). Настройките, които потребителят прави през редактора, се пазят в базата данни, а не във файловете. При избор на тема и подход помага и сравнението на платформите в избора на платформа за сайт.

Как да проверите, че дъщерната тема работи

След активирането отворете сайта и проверете дали изглежда като преди. Ако е загубил стиловете си, най-вероятно стилът на основната тема не се зарежда, а това се оправя във functions.php (WordPress.org, Theme Handbook, Learn WordPress). После променете нещо малко, например цвета на .site-title, и проверете, че промяната се вижда.

Истинската проверка е при обновяване: обновете основната тема и вижте дали промените ви са там, защото файловете на дъщерната тема не се променят (Learn WordPress).

Честите грешки при дъщерните теми

Най-често срещаната грешка е неточното име в Template. То трябва да съвпада с папката на основната тема, иначе дъщерната не работи (WordPress.org, Theme Handbook, Learn WordPress). Втората е копирането на целия functions.php от основната тема, което дава дублирани функции.

Трета грешка: очакването, че могат да се нижат "внуци". За инсталируема тема-внук няма стандартен начин (WordPress.org, Theme Handbook). И още едно ограничение: при много големи промени ръководството препоръчва вместо дъщерна тема да разклоните основната в самостоятелна тема, защото иначе поддръжката се затруднява.

Тази тема не заменя защитата на сайта. Към нея добавете мерките от сигурността на WordPress.

Въпроси и отговори

Ще се запазят ли промените, ако сменя основната тема? Не. Дъщерната тема е свързана с конкретна основна тема чрез полето Template (WordPress.org, Theme Handbook).

Нужна ли е дъщерна тема, ако променям само няколко реда CSS? Не е задължително, но промените във файловете на темата се губят при обновяване, затова дъщерната тема е по-сигурният избор (Learn WordPress).

За преводите се използва собствен текстов домейн. Ако зареждате преводи ръчно, ползвайте load_child_theme_textdomain() вместо load_theme_textdomain() (WordPress.org, Theme Handbook).

Източници и справки

  1. Child Themes — WordPress.org, Theme Handbook
  2. Classic Child Themes — Learn WordPress
  3. Usage statistics and market share of WordPress — W3Techs
  4. 8,000 New WordPress Vulnerabilities Reported in 2024 — SecurityWeek

Вижте и това

Редакция на WebMaster.bg

WebMaster.bg е малък екип, който работи от София, България. Пишем практично за уеб технологиите и посочваме източника на всеки факт.

За нас · Как работим · Всички материали

Фактите са по източниците, посочени под материала. Текстът е на Редакцията на WebMaster.bg. Редакционна политика · Забелязахте грешка? Пишете ни на kontakt@webmaster.bg.