Дочерние темы

Дочерняя тема в WordPress - это тема, наследующая функциональность другой, родительской темы. Использование дочерней темы позволяет дополнять или изменять дизайн и функциональность родительской темы, не изменяя файлы исходной, родительской темы. А это значит, что можно будет обновлять родительскую тему при появлении новой версии, сохраняя свои изменения.
Чтобы создать дочернюю тему, нужно, как минимум, создать папку темы и поместить в нее файл style.css с соответствующим заголовком. В этой статье в качестве родительской темы используется тема Twenty Ten, новая дефолтная тема WordPress 3.0.

Содержание:

Папка дочерней темы

Дочерняя тема находится в своей папке внутри папки WordPress wp-content/themes. Имя ее может быть любым, и она должна содержать файл style.css - единственный обязательный файл дочерней темы.

Папки тем и дочерних тем в cPanel

Обязательный файл style.css

В файле style.css дочерней темы задается специальный информационный заголовок, по которому WordPress узнает, что тема является дочерней, и заменяет этим файлом style.css файл стилей родительской темы.

Информационный заголовок должен находиться в самом начале файла и содержать строку Template: с указанием имени папки родительской темы.

Далее следует обычное содержимое файла стилей. Этот файл полностью заменяет файл стилей родительской темы (файл style.css родительской темы не загружается). Поэтому, если нужно только немного изменить дизайн родительской темы, что-то добавить в него, а не изменять кардинально, нужно сначала явно импортировать файл стилей родительской темы с помощью директивы @import, а затем уже добавлять свои изменения.

Допустим, мы хотим изменить цвет заголовка сайта в теме Twenty Ten. Создаем и активируем дочернюю тему с таким файлом стилей style.css:

/*
Theme Name:     Twenty Ten Child
Theme URI:      http: //example.com/
Description:    Child theme for the Twenty Ten theme
Author: mblogm
Author URI:     http: //example.com/about/
Template:       twentyten
Version:        0.1.0
*/
@import url("../twentyten/style.css");
@import url("../twentyten/rtl.css");
#site-title a {
  color: #009900;
}

Здесь обязательные строки:
Theme Name - имя дочерней темы и
Template - имя папки родительской темы (учитывается регистр символов) )

Для поддержки RTL-языков, т.е. языков, в которых символы пишутся справа налево (Right To Left, RTL) , в тему добавляется файл rtl.css (WordPress автоматически загружает файл rtl.css, если is_rtl().)

Файл functions.php

В отличие от style.css, файл functions.php дочерней темы не переопределяет, а дополняет файл родительской темы functions.php (файл дочерней темы загружается перед файлом родительской темы.)

Если нужно добавить в тему PHP-функцию, ее можно добавить в файл functions.php темы или создать дочернюю тему с файлом functions.php, в который можно помещать все дополнительные функции.

Файл functions.php содержит открывающий тег <?php в начале и закрывающий тег ?> в конце, между которыми можно располагать любое количество функций. Например, следующий файл functions.php добавляет ссылку на файл иконки сайта favicon.ico в заголовки HTML-страниц:

function favicon_link() {
  echo '<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />' . "n";
  }
add_action('wp_head', 'favicon_link');

*** Поскольку файл функций (functions.php) дочерней темы загружается раньше файла функций родительской темы, можно сделать так, чтобы функции темы можно было заменять функциями дочерней темы, например:

if (!function_exists('theme_special_nav')) {
  function theme_special_nav() {
  ...
  }
}

Дочерняя тема, объявляющая эту PHP-функцию, может заменять родительскую функцию.

Включение файлов

При включении файлов в файле functions.php дочерней темы нужно использовать константу STYLESHEETPATH, а не часто используемую константу TEMPLATEPATH:.

require_once( STYLESHEETPATH . '/path/to/file/in/child/theme.php' );

Файлы темы

Файлы шаблонов дочерней темы (single.php, page.php, ...) работают так же, как и файл style.css, т.е. переопределяют соответствующие файлы родительской темы (файл index.php может быть переопределен только, начиная с WordPress версии 3.0.).

Это позволяет добавлять шаблоны, которых нет в родительской теме, например, для страницы-карты сайта или для страниц с одной колонкой, и дополнять или полностью изменять шаблоны родительской темы.

Полезные статьи:

(Это вольный перевод статьи Кодекса "Child Themes")

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

* Copy this password:

* Type or paste password here:

1,967 Spam Comments Blocked so far by Spam Free Wordpress