Под-тема или дъщерна (child) тема за WordPress може да се създаде ръчно или с плъгин. За да не инсталирате допълнителни плъгини в сайта, препоръчваме child темата да се създаде ръчно.
Преди да създадете child тема, трябва да имате избрана основна тема за сайта. Child темата е разширение и модификатор към основната тема, чрез който можете да променяте дизайна на сайта, без да променяте файловете на основната тема.
Вижте какво е child тема за WordPress и кога ни е нужна | Blog
1. Нова директория за child темата
Създайте нова директория в директорията с теми – /wp-content/themes. Името ѝ трябва да съдържа името на основната тема плюс думата “-child” например “maintheme-child”.
Структурата на директориите в child темата трябва да е същата като тази на основната тема. Например ако основната тема има файл main-theme/dir/file.php, който искате да промените, трябва да го копирате в същата директория в child темата например theme-child/dir/file.php.
2. Файл style.css
В директорията на child темата поставете файл style.css. В този файл се нанасят промените по стила на сайта.
В този файл поставете следните редове:
/*
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 редовете:
<?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 темата в директорията ѝ, с име на файла screenshot.png. Тази картинка ще се вижда в админ панела във Външен вид » Теми.
Промяна на дизайна и стиловете на темата може да се извърши и без писане на код, като използвате WordPress билдър | Blog