Вопрос или проблема
Я не часто работаю с 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:
Но когда я переключаюсь на свою дочернюю тему, кажется, что некоторые элементы шаблона сбрасываются.
Нужно ли мне копировать все файлы родительской темы в дочернюю тему (этого я не делал в прошлом, таблицы стилей было достаточно)?
(Кроме того, для темы Promoter, похоже, нет возможности скачать zip-файл, поэтому, возможно, мне придется копировать их вручную.)
Или есть какой-то другой способ экспортировать нужные мне файлы? Или я упускаю что-то, что, возможно, нужно экспортировать из шаблонов, xml и т. д.?
Дайте знать, если нужна дополнительная информация. Заранее спасибо.
Ответ или решение
Когда создаешь дочернюю тему в WordPress, она в основном предназначена для наследования функциональности родительской темы с возможностью внесения изменений, не затрагивая оригинальные файлы. Однако, иногда могут возникать ситуации, когда использование дочерней темы приводит к сбоям или изменению некоторых аспектов дизайна или функциональности, как в вашем случае с темой Promoter. Давайте разберём, почему это может происходить и как решить эту проблему.
Теория (Theory):
При создании дочерней темы важно учитывать, как она взаимодействует с родительской. Дочерние темы автоматически наследуют все файлы родительской темы за исключением тех, которые вы измените. Самые распространенные изменения включают стили и функции, касающиеся style.css
и functions.php
. Однако может возникнуть проблема, если родительская тема использует дополнительные настройки или файлы конфигурации, такие как XML, JSON или специальные функции, которые не наследуются автоматически.
Пример (Example):
Вы столкнулись с проблемой, когда при активации дочерней темы происходят непредвиденные изменения интерфейса сайта, которые отсутствуют в оригинальной теме Promoter. Основной вопрос – правильно ли наследуются все нужные компоненты из родительской темы. В данных, которые вы предоставили, видно, что вы правильно настроили базовые файлы дочерней темы: style.css
и functions.php
. Однако, скорее всего, проблема требует более глубокой проверки.
Применение (Application):
-
Проверьте загрузку стилей: Убедитесь, что стили родительской темы правильно загружаются перед стилями дочерней темы. Проверьте, правильно ли указаны идентификаторы в массиве зависимостей
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’ совпадает с идентификатором стиля родительской темы.
-
Проверьте PHP-файлы: Если у родительской темы есть специфичные файлы (например,
header.php
,footer.php
,page.php
), и если изменения происходят в этих зонах, попробуйте скопировать нужные файлы в вашу дочернюю тему и внесите в них изменения. -
Пользовательские функции и хуки: Проверьте, не использует ли родительская тема дополнительные функции или хуки, которые следует переопределить в дочерней теме. Такие функции могут влиять на отображение и поведение элементов темы.
-
Импорт настроек: Иногда темы сохраняют настройки через панель администратора в формате JSON или XML. Если ваша родительская тема содержит такие настройки, убедитесь, что они импортированы в вашу дочернюю тему.
-
Документация: Ознакомьтесь с документацией темы Promoter. Возможно, она содержит информацию о том, как установить дочернюю тему или какие настройки учитывать при создании.
Если все вышеперечисленные шаги не помогают решить проблему, возможно, стоит обратиться к разработчикам темы Promoter за консультацией. То, что вам необходимо вручную копировать файлы из родительской темы, тоже может быть признаком того, что тема требует специального метода создания дочерней темы. И напоследок, всегда сохраняйте резервные копии перед внесением изменений, чтобы избежать потери данных, если что-то пойдет не так.