/ Сайтостроение / Wordpress / Дочерние темы

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

23.11.2018

74

Давно хотел разобраться с этой темой и теперь появилась необходимость сделать поддержку дочерних тем на мультисайте.

Создание дочерней темы

Для создания дочерней темы нужно:

  • Создать папку с дочерней темой в папке /themes/ (в той же папке где и родительская). Необязательно называть ее theme-child, но так будет удобнее.
  • Обязательный файл который должен содержаться в дочерней теме — это style.css и в начале этого файла, вот такая запись:
    /*
    Theme Name: Meisterwerk 2.0 Ivmontan
    Template: meisterwerk-2
    */

    В строке Template должно быть указано не название темы, а как называется папка в которой она храниться (чувствительность к регистру). Иногда они не совпадают.

В дочерней теме могут также дублироваться и остальные шаблоны, стили и скрипты, чтобы их можно было изменять локально. Нельзя дублировать functions.php с теми же функциями — из-за этого произойдет 500 ошибка.

Перезапись style.css

Т.к. обычно я подключаю основной стиль (style.css) из functions.php

function header_enqueue_style() {
  	wp_enqueue_style( 'style', get_template_directory_uri() . '/style.css' , array( ), '1.0' , 'screen' );
}
add_action( 'wp_print_styles', 'header_enqueue_style' );

а functions из дочерней и родительской загружаются последовательно, то дочерний style.css затирался функцией. При этом дочерний style.css наоборот должен полностью заменять родительский.

Решение:

// Подключение дочернего стиля
add_action( 'wp_enqueue_scripts', 'theme_enqueue_child_styles' );
function theme_enqueue_child_styles(){
	wp_enqueue_style( 'child-style', get_stylesheet_directory_uri() . '/style.css', array('style') );
}

Мы подключаем стиль, только при условии, что основной стиль загружен. А т.к. дочерний стиль будет подгружаться после основного он будет перекрывать его стили.

Поделится информацией с друзьями

  • Комментарии
  • Вложения

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

Пока нет комментариев. Будь первым!

Дочерние темы
Миниатюры
Рекомендации для васМиниатюрыOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.