Внесения изменений в тему с использованием дочерней темы

В данной статье мы разберем некоторые ключевые моменты связанные с включением дополнительных возможностей к дочерней темы. Знание и понимание данных настроек поможет вам более широко использовать дочернюю тему без нанесения вреда родительской.


Дочерняя тема является темой, которая наследует функциональность и стиль в другой темы, родительской. Использование дочерних тем является рекомендованным методом для модификации существующей темы.

Навигация по странице:

  • Зачем использовать дочернюю тему?
  • Использование файлов шаблона при создании дочерней темы.
  • Использование functions.php в дочерней теме
  • Ссылки/включение файлов в дочернюю тему
  • Полезная информация по использованию дочерней темы
  • Использование почтовых форматов
  • Поддержка RTL
  • Интернационализация дочерней темы

Зачем использовать дочернюю тему?

Есть несколько причин, почему вы хотели бы использовать дочернюю тему:

  • Если вы измените тему, которой вы пользуетесь в данный момент, при выходе обновления темы ваши изменения могут быть удалены. При использовании темы дочерней вы можете быть уверены, что ваши изменения сохранятся.
  • Использование дочерней темы может ускорить время разработки.
  • Использование дочерней темы является отличным способом, узнать о развитии WordPress.

Ранее мы уже рассматривали как создать дочернюю тему, теперь поговорим о более обширных возможностях создания и развития ваших разработок с WordPress.

Использование файлов шаблона при создании дочерней темы.

Если вы хотите изменить больше, чем просто стиль, ваша дочерняя тема может переопределить любой файл в родительской теме: просто включить файл с таким же именем в каталоге ребенка, и она будет переопределять эквивалентный файл в каталоге родителя, когда это будет происходить загрузка вашего сайта. Например, если вы хотите изменить код PHP для заголовка сайта, вы можете включить в каталог header.php вашей дочерней темы, и этот файл будет использоваться вместо header.php родительского.

Вы также можете включить файлы, не включенные в родительской теме. Например, вы можете создать более конкретный файл, чем файлы шаблона находящиеся в родительском теме. Например в качестве шаблона для конкретной страницы или категории архива. Иерархию шаблонов страниц, и информацию о том как WordPress их использует будет рассмотрено в другой раз.

Использование functions.php в дочерней теме

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

Таким образом  functions.php из дочерней темы предоставляет интеллектуальный и бесперебойный способ модификации функциональности материнской темы. К примеру если вы хотите добавить некий функционал к вашей теме, самый быстрый способ будет открыть functions.php файл и положить функцию там. Но это не самое умное решение, при следующем обновлении вашей темы, ваши функции исчезнут. К счастью существует альтернативный способ, который является верным решением этой проблемы: вы можете создать тему ребенка, добавить functions.php файл, и добавить функцию к этому файлу. Функция будет делать ту же самую работу и оттуда, с тем преимуществом, что она не будет утеряна, при будущих обновлениях материнской темы.

Структура functions.php проста: открывающий тег PHP в верхней части, и под ним, ваши функции PHP. В файле вы можете поставить столько функций, сколько вы хотите. Пример ниже показывает элементарный functions.php файл, который делает одну простую вещь — добавляет ссылку FavIcon в голову элемента HTML-страницы.

<PHP // Открытие PHP скрипта — ничего не должно быть до этого, даже пробелов
// Включаем пользовательскую функцию
function favicon_link () {
echo ‘<link rel=»shortcut icon» type=»image/x-icon» href=»/favicon.ico» />’ . «n»;
}
add_action (‘wp_head’, ‘favicon_link’);

123456

<PHP // Открытие PHP скрипта — ничего не должно быть до этого, даже пробелов// Включаем пользовательскую функциюfunction favicon_link () {    echo ‘<link rel=»shortcut icon» type=»image/x-icon» href=»/favicon.ico» />’ . «n»;} add_action (‘wp_head’, ‘favicon_link’);

Полезные советы для разработчиков: Тот факт, что файл functions.php дочерней темы загружается в первую очередь означает, что вы можете сделать пользовательские функции связанные с подключаемыми в родителе, то есть, по переменным ребенка theme-, объявив их условно. Например:

if ( ! function_exists( ‘theme_special_nav’ ) ) {
function theme_special_nav() {
// Do something.
}
}

12345

if ( ! function_exists( ‘theme_special_nav’ ) ) {    function theme_special_nav() {        //  Do something.    }}

Таким образом, тема ребенок может заменить PHP функцию родителя просто объявляя ее заранее.

Ссылки/включение файлов в дочернюю тему

Когда вам нужно включить файлы, которые находятся в пределах структуры каталогов вашей дочерней темы, вам нужно будет использовать get_stylesheet_directory (). Так style.css родительского шаблона замещается style.css вашей дочерней темы, который размещается  в корне директории вашей темы ребенка; get_stylesheet_directory () указывает на каталог вашей дочерней темы, а не каталога родительской.

Вот пример, используя require_once, который показывает, как можно использовать get_stylesheet_directory при помощи ссылки на файл, сохраненный в структуре каталогов вашей дочерней темы.

require_once (get_stylesheet_directory () ‘/my_included_file.php.);

1

require_once (get_stylesheet_directory () ‘/my_included_file.php.);

Полезная информация по использованию дочерней темы
Использование почтовых форматов

Ребенок наследует тему почтовых форматов, определенных в родительском теме. При создании дочерних темы, нужно знать , что с помощью функции add_theme_support (‘post-formats’) будет переопределять форматы, определенные родительской темой.

Поддержка RTL

Для поддержки языков RTL нужно добавить rtl.css файл к вашей дочерней теме содержащий:

Theme Name: Twenty Fourteen Child // название дочерней темы
Template: twentyfourteen // название папки с шаблонами
*/
rtl.css загружается только, если функция is_rtl () возвращает истину.
Рекомендуется добавить файл rtl.css для вашей дочерней темы, даже если родитель не имеет rtl.css файл.
Интернационализация дочерней темы

Детские темы, как и другие расширения, могут быть переведены на другие языки с помощью Gettext функции.

Для интернационализации дочерней темы выполните следующие действия:

  • Добавить каталог языка.
    • Что-то вроде моей my-theme/languages/.
  • Добавить языковые файлы.
    • Ваши имена должны быть he_IL.po & he_IL.mo (в зависимости от языка), в отличие от файлов плагина, которые имеют формат domain-he_IL.xx.
  • Загрузка языка домена.
    • Используйте load_child_theme_textdomain () в functions.php в течении after_setup_theme действия.
    • Текст домена, определенный в load_child_theme_textdomain () следует использовать, чтобы перевести все строки в дочерней теме.
  • Используйте функции GetText, что бы добавить i18n поддержку для строк.

Пример textdomain:

<?php /** * Setup My Child Theme’s textdomain. * * Declare textdomain for this child theme. * Translations can be filed in the /languages/ directory. */ function my_child_theme_setup() { load_child_theme_textdomain( ‘my-child-theme’, get_stylesheet_directory() . ‘/languages’ ); } add_action( ‘after_setup_theme’, ‘my_child_theme_setup’ ); ?>

Пример gettext functions

<?php _e( ‘Code is Poetry’, ‘my-child-theme’ ); ?>

Чтобы подвести итог, все строки, которые используют «my-child-theme» будет переведено. Файл перевода должен находиться в «/languages/» каталоге.

Источник: WordPress.org.

Рекомендую почитать:

  • Удаляем ссылки на дату публикации и автора статьи.
  • Избавляемся от лишних запросов к базе данных.
  • Самостоятельно создаем и устанавливаем фавикон.
  • Пользовательские CSS, меняем внешний вид через редактор плагина.
  • Меняем формат выводимой даты.

Related Articles

12 Comments

  1. I’ve been exploring for a bit for any high quality articles or blog
    posts in this sort of area . Exploring in Yahoo I eventually stumbled upon this site.
    Studying this information So i am glad to exhibit that I’ve a very good uncanny feeling I came upon exactly what I
    needed. I such a lot undoubtedly will make sure to
    don?t fail to remember this web site and provides it a glance regularly.

  2. Thanks for your personal marvelous posting! I quite enjoyed reading it,
    you will be a great author. I will always bookmark your blog
    and will come back down the road. I want to encourage you to continue your
    great work, have a nice afternoon!

  3. link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno grafi link porno
    grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno grafi
    link porno grafilink porno grafilink porno grafi link porno grafilink
    porno grafilink porno grafi link porno grafilink porno grafilink
    porno grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno
    grafilink porno grafi link porno grafilink porno grafilink porno
    grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno grafi
    link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink
    porno grafi link porno grafilink porno grafilink porno grafi link
    porno grafilink porno grafilink porno grafi link porno grafilink porno
    grafilink porno grafi link porno grafilink porno grafilink porno grafi link
    porno grafilink porno grafilink porno grafi link porno grafilink
    porno grafilink porno grafi link porno grafilink
    porno grafilink porno grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink
    porno grafi link porno grafilink porno grafilink porno grafi link
    porno grafilink porno grafilink porno grafi link porno grafilink porno
    grafilink porno grafi link porno grafilink porno grafilink porno
    grafi link porno grafilink porno grafilink porno
    grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno
    grafi link porno grafilink porno grafilink porno grafi link porno
    grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno
    grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno
    grafi link porno grafilink porno grafilink porno grafi link porno
    grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno
    grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno
    grafi link porno grafilink porno grafilink porno grafi link
    porno grafilink porno grafilink porno grafi link porno grafilink porno
    grafilink porno grafi link porno grafilink porno grafilink porno grafi link porno
    grafilink porno grafilink porno grafi link porno grafilink
    porno grafilink porno grafi link porno grafilink porno grafilink
    porno grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno grafi link porno grafilink
    porno grafilink porno grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno grafilink porno
    grafi link porno grafilink porno grafilink porno
    grafi link porno grafilink porno grafilink porno grafi link porno grafilink porno
    grafilink porno grafi link porno grafilink porno
    grafilink porno grafi

  4. Heya! I understand this is sort of off-topic however
    I needed to ask. Does operating a well-established website like yours require a massive amount
    work? I am completely new to operating a blog however I do
    write in my diary every day. I’d like to start a blog so I can easily share my experience and thoughts online.
    Please let me know if you have any kind of ideas or tips
    for brand new aspiring bloggers. Appreciate it!

Добавить комментарий для my missav Отменить ответ

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

Back to top button
Close