Как се създава child тема за WordPress?

Под-тема или дъщерна (child) тема за WordPress може да се създаде ръчно или с плъгин. За да не инсталирате допълнителни плъгини в сайта, препоръчваме child темата да се създаде ръчно.

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

Вижте какво е child тема за WordPress и кога ни е нужна | Blog

1. Нова директория за child темата

Създайте нова директория в директорията с теми – /wp-content/themes. Името ѝ трябва да съдържа името на основната тема плюс думата “-child” например “maintheme-child”.

Директорията на child темата в /wp-content/themes.
Директорията на child темата в /wp-content/themes.

Структурата на директориите в child темата трябва да е същата като тази на основната тема. Например ако основната тема има файл main-theme/dir/file.php, който искате да промените, трябва да го копирате в същата директория в child темата например theme-child/dir/file.php.

2. Файл style.css

В директорията на child темата поставете файл style.css. В този файл се нанасят промените по стила на сайта.

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

В този файл поставете следните редове:

/*
 Theme Name: My SuperTheme Child
 Theme URI: https://goodexample.eu/mysupertheme-child/
 Description: Child theme for My SuperTheme
 Author: I'm the author.
 Author URI: https://goodexample.eu
 Template: mysupertheme
 Version: 1.0.0
*/

/* ------- Insert custom styles below this line ------- */

Theme Name: My SuperTheme Child – Поставете име за child темата, трябва да е уникално.
Template: mysupertheme – Поставете името на директорията на основната тема.

С тези редове се указва на WordPress, че това е child тема, към определената основна тема.

Не е нужно да се поставят всичките посочени редове, но следните два е задължително да са добавени:

/*
 Theme Name: My SuperTheme Child
 Template: mysupertheme
*/

Добавете и реда с версията на child темата (Version:), за да може кешираната информация да се опреснява, след като са нанесени промени по темата. След като извършите промени по child темата, може да увеличавате версията ѝ (1.0.1, 1.0.2 …).

3. Файл functions.php

Файлът functions.php съдържа функционалностите за темата (по един за основната и за child темата).

Създайте файл functions.php в директорията на child темата.

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

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

Поставете във functions.php редовете:

<?php 
/* Load theme stylesheets */
add_action( 'wp_enqueue_scripts', 'mysupertheme_styles' );
function mysupertheme_styles() {
 
    $parent_style = 'mysupertheme-style';
    // load parent style
    wp_enqueue_style( $parent_style, get_template_directory_uri() . '/style.css' );
    // load child style
    wp_enqueue_style( 'mysupertheme-child-style',
        get_stylesheet_directory_uri() . '/style.css',
        array( $parent_style ),
        wp_get_theme()->get('Version')
    );
}

mysupertheme-style – Това е името за стила на основната тема.
mysupertheme-child-style – Това ще е името за стила на child темата.


Друг начин, използван в миналото, за включване на стила на основната тема към child темата, е чрез добавяне на следните редове във файла style.css:

/* Import CSS style sheets from Parent Theme */
@import url("../maintheme/style.css");

Този начин вече не се препоръчва за включване на стилови файлове към темите. Вместо него използвайте wp_enqueue_scripts с функцията wp_enqueue_style() във файл functions.php.


Нанесете корекции в примерния код

1. В реда за зареждане на стила на основната тема wp_enqueue_style( $parent_style…:

a) Заменете mysupertheme-style с името, което е използвано за регистриране на стила на основната тема.

Можете да намерите това име във файла functions.php на основната тема, в реда с функцията “wp_enqueue_style”.

Името за стила, зададен в основната тема.
Името за стила, зададен в основната тема.

Друг начин да видите това име е, като погледнете в кода на страница от сайта и потърсите реда на заредения стил:

<link rel='stylesheet' id='mysupertheme-style-css' href='..themes/mysupertheme/style.css…

От името премахнете последната част “-css”.

Зареденият стил на основната тема.
Зареденият стил на основната тема.

b) Заменете /style.css с пълния път до и името на стиловия файл на основната тема.

Файлът style.css е задължително да съществува в директорията на основната тема, но не е задължително стиловете да са поставени в него.

Например основната тема може да е задала друг стилов файл, от който да се зареждат стиловете. Кой е стиловият файл на основната тема може да се види в нейния файл functions.php, в реда за регистриране на стила:

wp_enqueue_style( 'mysupertheme-style', get_stylesheet_directory_uri() . '/css/style.css

2. В реда за включване на стила на child темата:

'mysupertheme-child-style', get_stylesheet_directory_uri()…)

заменете /style.css с пълния път и стиловия файл на child темата.

4. Активиране на child темата

Child темата може да се види в администрацията – Външен вид » Теми. Можете да я активирате, както всяка друга тема за WordPress – Activate (Активиране).

Активиране на child темата.
Активиране на child темата.

Можете да поставете изображение за child темата в директорията ѝ, с име на файла screenshot.png. Тази картинка ще се вижда в админ панела във Външен вид » Теми.


Промяна на дизайна и стиловете на темата може да се извърши и без писане на код, като използвате WordPress билдър | Blog

Обновена: 06.04.2022

Беше ли Ви полезна тази статия?

Вижте още