Какво е child тема за WordPress и кога ни е нужна?

Буквалният превод на „child theme“ е „детска или дъщерна тема“, но за тази статия ще използваме широко познатия в WordPress средите термин „child“ тема.

В WordPress можете да зададете дизайн за сайта много лесно, като си изберете тема, инсталирате я и я активирате.

След като темата е активирана, при разработката на сайта или дори след това, може да се наложи промяна на някои компоненти в дизайна ѝ. Промяната на дизайна обаче означава да извършите промяна на кода във файловете на темата.

Промените, извършени във файловете на темата, ще се загубят при обновяването ѝ. В такива случаи ще трябва да нанасяте същите промени отново, след всяко обновяване. Това може да Ви откаже от бъдещо обновяване на темата. А необновената тема е риск за сигурността на сайта. Поради това е нужно да се използват други методи за модифициране на стила и функционалностите на темата. И препоръчителният начин е чрез използване на child тема.

Child темата не е тема в пълния смисъл на думата, по-скоро е допълнение и модификатор към основната тема. Child темата е начин, чрез който можете спокойно да променяте отделните компоненти на дизайна – стил, функционалности, оформление, без да променяте файловете на основната тема за сайта. Също така е фактор за сигурността на сайта, тъй като ще позволи обновяването на основната тема.

Промените по стила и функционалностите, направени във файловете на child темата, се запазват при обновяване на основната тема.

Ползите от използването на child тема са:

  • Променяте стила и функционалностите в сайта, без да променяте кода на основната тема.
  • Ще можете да обновявате основната тема, без притеснение, че нанесените промени ще се загубят.
  • Ще поддържате сигурността на сайта, защото ще можете да обновявате основната тема.
  • Можете много бързо да възстановите предишното състояние на дизайна, като превключите към основната тема.

Как да създадете и използвате child тема:

Създаване на child тема

Можете да създадете child тема към основната тема за сайта ръчно или чрез плъгин. Ръчното създаване на child тема включва две основни стъпки:

  • В директорията с теми (/wp-content/themes/) се създава нова директория. Името ѝ трябва да започва с името на основата тема и да завършва с „-child“ (maintheme-child).
  • В тази директория се поставят два основни файла: style.css и functions.php. В тях се поставя определено съдържание.

Вижте подробности за определеното съдържание в тези файлове в статията: Как се създава child тема за WordPress? | Help

Бележка: Създаването и тестването на child темата е препоръчително да се извършва на тестово копие на сайта. Можете да създадете работно копие на сайта през cPanel » Softaculous » Staging.

Промяна на стила (CSS)

Стилът за сайта е описан с CSS правила, които се намират в стиловия файл на основната тема. Най-често този файл е: /wp-content/themes/maintheme/style.css.

Стилови правила във файла style.css на основната тема.
Стилови правила във файла style.css на основната тема.

След като имате child тема, всички промени по стила на сайта трябва да се извършват в нейния style.css файл (/wp-content/themes/maintheme-child/style.css).

Стиловият файл style.css на child темата.
Стиловият файл style.css на child темата.

Стилът от оригиналната тема се зарежда по подразбиране, но стилът от child темата е с приоритет. Това позволява да поставяте същите CSS директиви, но с различни стойности.

Вижте повече: Видове селектори в CSS | Help

Промяна/добавяне на функционалности

Функционалностите в основната тема се управляват във файла ѝ functions.php (/wp-content/themes/maintheme/functions.php).

Функционалностите в основната тема.
Функционалностите в основната тема.

Промяна и добавяне на нови функционалности се извършва във файла functions.php на child темата (wp-content/themes/maintheme-child/functions.php).

Файлът functions.php на child темата.
Файлът functions.php на child темата.

Този файл се зарежда преди файла functions.php на основната тема.

Функционалностите от файла на основната тема не може да се премахнат. Вместо това можете да ги променяте, но само ако са зададени по следния начин във functions.php на основната тема:

if ( ! function_exists( 'theme_some_function' ) )

Във functions.php може да се добавят функционалности, които се предлагат от WordPress като ленти за джаджи (sidebar), автоматично създаване на feed линкове за публикациите и коментарите (feed links), формати на публикациите (post formats), картинка за публикациите (post thumbnails), навигационни менюта (navigation menus) и други. Освен тези, разработчиците може да създават и добавят собствени функционалности.

Когато дадена функционалност, която искате да добавите не е конкретно обвързана с дизайна, може вместо във functions.php да я добавите във Ваш плъгин. За създаването на плъгин за WordPress е нужен един PHP файл. Когато функционалността е добавена чрез плъгин, ако в бъдеще смените темата (и child темата), тя ще остане активна и непроменена.

Вижте още: Основи на синтаксиса и коментарите към кода в PHP | Help

Промяна на страниците (и отделните части в тях)

Различните видове страници в сайта и отделните компоненти в тях се управляват с темплейтните файлове на темата. Тези файлове са шаблони, съдържащи PHP код и HTML код, по които се подрежда съдържанието и се изгражда финалния изглед на страницата.

Темплейтният файл header.php на основната тема, който отговаря за заглавната част на всяка страница в сайта.
Темплейтният файл header.php на основната тема, който отговаря за заглавната част на всяка страница в сайта.

Има основни темплейтни файлове, които отговарят за различните типове страници в сайта например page.php (страница), single.php (публикация), 404.php (страница за грешка 404) и други. Към тях може да се вмъкват други частични темплейтни файлове, отговарящи за отделни части от страницата като header.php (заглавната част на страницата), footer.php (долната част на страницата), sidebar.php (страничната лента) и други.

Например, ако искате да промените хедъра на сайта, трябва да копирате header.php в директорията на child темата и да извършите редакции по него. Оригиналният header.php на основната тема няма да се зарежда.

За разлика от style.css и functions.php на основната тема, които са винаги заредени, темплейтните файлове на основната тема не се зареждат, ако има техни алтернативи в директорията на child темата.

OPcache и промяната на PHP кода във файловете

HTML кодът на страниците се генерира динамично чрез изпълнението на PHP кода в темплейтните файлове на темата.

PHP интерпретаторът изпълнява темплейтните файлове и резултатът е готовият HTML код на страницата. Ако за сайта е активиран OPcache, след като направите промяна по някой PHP файл, за да видите промените в сайта, трябва да изчистите opcode кеша.

Вижте какво е opcode кеширане и как се генерира HTML код от изпълнението на PHP код: Ускоряване на PHP приложения чрез opcode кеширане | Help

Кога и защо не е препоръчително да се използва child тема?

В зависимост от това до каква степен искате да промените компонентите на дизайна, невинаги използването на child тема е препоръчително или нужно.

Съществени и сложни промени по компонентите на дизайна

Колкото повече темплейтни файлове модифицирате (променяте/добавяте PHP код), толкова повече ще се усложни поддръжката на child темата. Едно от основните затруднения, които може да се получат в този случай, ако не сте уеб разработчик, е този код да стане неактуален след известно време. PHP кодът във файловете на child темата няма да се обновява автоматично, освен ако Вие не го обновите.

Например, ако основната тема има 5 темплейтни файла и Вие ги копирате и промените в child темата, тогава тези 5 файла няма да се обновяват, кодът в тях ще остане такъв, докато Вие не го обновите. Използването на child тема в този случай не е препоръчително.

Вижте повече за последиците от необновени компоненти в сайта, които са валидни и за темите: Необновените плъгини – риск за сигурността на сайта (и пречка за ускоряването му) | Blog

Преди да създадете child тема и да започнете промените в нея, трябва да сте сигурни, че избраната основна тема за сайта отговаря максимално на изискванията Ви – като дизайн, стил и функционалности. От това зависи колко и какви модификации ще се наложи да направите по компонентите на дизайна в child темата.

Например, ако Вие вече имате основна тема за сайта, в която не харесвате голяма част от стила ѝ, или искате да добавите/промените много функционалности, или да промените съществено подредбата на съдържанието в страниците, то тогава промените, които ще трябва да нанесете може да се равняват на създаването на една нова основна тема.

Колкото повече основната тема не отговаря на нуждите и визията Ви за сайта, толкова повече и по-сложни промени в компонентите на дизайна ще трябва да направите. А колкото по-сложни са промените, толкова повече знания ще са Ви необходими в сферата на уеб разработката и програмирането (PHP, CSS, HTML). В тези случаи е по-добре да потърсите по-подходяща основна тема, отколкото да се захванете с редизайн на сайта.

За съществени и сложни промени по дизайна не се препоръчва използването на child тема. В този случай може да се замислите за избор на друга основна тема, която най-много се доближава до изискванията Ви за дизайн, стил и функционалности. След това може да ѝ направите child тема и да приложите минимални промени.

Малки промени само в стила на сайта

Ако искате да промените само малка част от стила на сайта, например цвета на фона, шрифта на текста и други дребни модификации, то тогава не е нужна child тема.

Вместо това стилът може да се постави в опцията Външен вид (Appearance) » Настройки (Customize) » Потребителски CSS код (Additional CSS).

За да промените цвета на фона на сайта, не Ви е нужна child тема.
За да промените цвета на фона на сайта, не Ви е нужна child тема.

Когато искате да промените само няколко елемента в стила на сайта като цвят и размер на текста, тогава вместо child тема, може да използвате опцията за добавяне на потребителски CSS стил във Външен вид » Настройки.

Когато искате да извършите промени по дизайна и функционалностите на сайта, тогава е препоръчително да използвате child тема. Така няма да се наложи да променяте кода на файловете на основната тема за сайта. Използването на child тема ще Ви позволи да обновявате основната тема, без да се налага да избирате между сигурността на сайта и направените промени в дизайна. 

Мадлена Методиева
Мадлена Методиева
Меган е част от СуперМаркетинг екипа. Мисията ѝ е старателно да попълва е-библиотеката на СуперХостинг.БГ с полезни и помощни статии.
0 0 votes
.
Абониране
Уведоми ме при
guest

0 Коментара
Inline Feedbacks
View all comments
Вече е време да си имате сайт!

Кога разбирате, че Вашият бизнес се нуждае от сайт?

0
Нямате сайт? Но имате бизнес… И все повече усещате, че имате нужда от сайт. Е, тази статия ще Ви помогне да вземете решение. Прочетете повече!
Какви са ползите от SSL сертификата за сайта и неговите потребители?

Какви са ползите от SSL сертификата за сайта и неговите потребители?

0
Използването на SSL сертификат и сигурна HTTPS връзка за сайта е категоричен показател, че държите на доверието и сигурността на посетителите му.

Бизнес планиране в 3 стъпки – какво, как и защо?

4
Време е да се фокусирате върху бизнес планирането през предстоящата 2023 г. Предлагаме няколко основни стъпки, с които ще ускорите и улесните този процес.