Дочерняя тема наследуется от родительской темы, но, кажется, также сбросила некоторые другие настройки.

Вопрос или проблема

Я не часто работаю с WordPress, но в прошлом, работая над сайтами клиентов, я всегда брал текущую тему, создавал дочернюю от нее и обычно только расширял таблицу стилей (или в некоторых случаях добавлял functions.php, header.php или footer.php).

Этот метод, похоже, не работает с Promoter, которая является темой WordPress.

Я создал новую дочернюю тему и добавил свой собственный файл style.css, который выглядит так (сокращено):

/*
Theme Name: Promoter child
Theme URI: https://themeshaper.com/promoter/
Author: Automattic
Author URI: https://automattic.com
...
Text Domain: promoter
Template: promoter

Я также добавил базовый файл functions.php, который выглядит так:

<?php
/**
 * Promoter Child Theme functions and definitions
 *
 * @link https://developer.wordpress.org/themes/basics/theme-functions/
 *
 * @package Promoter Child
 * @since 1.0.0
 */

/**
 * Define Constants
 */
define( 'CHILD_THEME_PROMOTER_VERSION', '1.0.0' );

/**
 * Enqueue styles
 */
function child_enqueue_styles() {

    wp_enqueue_style( 'promoter-child-theme-css', get_stylesheet_directory_uri() . '/style.css', array('promoter-theme-css'), CHILD_THEME_PROMOTER_VERSION, 'all' );

}

add_action( 'wp_enqueue_scripts', 'child_enqueue_styles', 15 );

Я установил это, и оно работает в том смысле, что если я изменю некоторые стили, это изменит тему на текущем живом сайте.

Вот скриншот текущей темы Promoter:

enter image description here

Но когда я переключаюсь на свою дочернюю тему, кажется, что некоторые элементы шаблона сбрасываются.

enter image description here

Нужно ли мне копировать все файлы родительской темы в дочернюю тему (этого я не делал в прошлом, таблицы стилей было достаточно)?

(Кроме того, для темы Promoter, похоже, нет возможности скачать zip-файл, поэтому, возможно, мне придется копировать их вручную.)

Или есть какой-то другой способ экспортировать нужные мне файлы? Или я упускаю что-то, что, возможно, нужно экспортировать из шаблонов, xml и т. д.?

Дайте знать, если нужна дополнительная информация. Заранее спасибо.

enter image description here

Ответ или решение

Когда создаешь дочернюю тему в WordPress, она в основном предназначена для наследования функциональности родительской темы с возможностью внесения изменений, не затрагивая оригинальные файлы. Однако, иногда могут возникать ситуации, когда использование дочерней темы приводит к сбоям или изменению некоторых аспектов дизайна или функциональности, как в вашем случае с темой Promoter. Давайте разберём, почему это может происходить и как решить эту проблему.

Теория (Theory):

При создании дочерней темы важно учитывать, как она взаимодействует с родительской. Дочерние темы автоматически наследуют все файлы родительской темы за исключением тех, которые вы измените. Самые распространенные изменения включают стили и функции, касающиеся style.css и functions.php. Однако может возникнуть проблема, если родительская тема использует дополнительные настройки или файлы конфигурации, такие как XML, JSON или специальные функции, которые не наследуются автоматически.

Пример (Example):

Вы столкнулись с проблемой, когда при активации дочерней темы происходят непредвиденные изменения интерфейса сайта, которые отсутствуют в оригинальной теме Promoter. Основной вопрос – правильно ли наследуются все нужные компоненты из родительской темы. В данных, которые вы предоставили, видно, что вы правильно настроили базовые файлы дочерней темы: style.css и functions.php. Однако, скорее всего, проблема требует более глубокой проверки.

Применение (Application):

  1. Проверьте загрузку стилей: Убедитесь, что стили родительской темы правильно загружаются перед стилями дочерней темы. Проверьте, правильно ли указаны идентификаторы в массиве зависимостей wp_enqueue_style.

    wp_enqueue_style( 'promoter-child-theme-css', get_stylesheet_directory_uri() . '/style.css', array('parent-theme-css'), CHILD_THEME_PROMOTER_VERSION, 'all' );

    Убедитесь, что ‘parent-theme-css’ совпадает с идентификатором стиля родительской темы.

  2. Проверьте PHP-файлы: Если у родительской темы есть специфичные файлы (например, header.php, footer.php, page.php), и если изменения происходят в этих зонах, попробуйте скопировать нужные файлы в вашу дочернюю тему и внесите в них изменения.

  3. Пользовательские функции и хуки: Проверьте, не использует ли родительская тема дополнительные функции или хуки, которые следует переопределить в дочерней теме. Такие функции могут влиять на отображение и поведение элементов темы.

  4. Импорт настроек: Иногда темы сохраняют настройки через панель администратора в формате JSON или XML. Если ваша родительская тема содержит такие настройки, убедитесь, что они импортированы в вашу дочернюю тему.

  5. Документация: Ознакомьтесь с документацией темы Promoter. Возможно, она содержит информацию о том, как установить дочернюю тему или какие настройки учитывать при создании.

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

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

Капча загружается...