Вопрос: Зачем разработчики WordPress в дефолтных темах продолжают использовать прямое подключение файлов через require?
Через require()
подключаются файлы с функциями, а get_template_part()
предназначена для подключения частей шаблонов.
Разработчики стремятся соблюсти баланс между лёгкостью изменения темы через дочернюю и возможностью вносить обновления в родительскую тему для совместимости со следующими версиями WordPress.
Если дочерняя будет целиком заменять не только шаблоны, но и файлы функций, вносить обновления в родительскую становится проблематично.
Большинство функций в том же файле inc/template-tags.php
, однако, заключены в условие ! function_exists()
, т.е. их при желании можно переопределять в дочерней теме по отдельности.
Будьте добры, подскажите, как можно сохранить изменения файла стилей какого-либо плагина (в частности wp-shop) в дочерней теме? Я знаю, что файл style.css в дочерней теме может дополнять файл стилей родительской темы, если в него подключить файл родительской темы с помощью директивы @import.
Есть ли подобная возможность для плагинов? И если есть, то как это сделать? Возможно ли подключить файл с изменениями стилей плагина в файле functions.php, положив при этом сам файл стилей с изменениями в папку с дочерней темой?
Я имею ввиду, что если править файл стилей плагина, то при его обновлении все исправленные стили тоже пропадут. И я бы хотела знать как можно этого избежать.
Возможно ли подключить файл с изменениями стилей плагина в файле functions.php, положив при этом сам файл стилей с изменениями в папку с дочерней темой?
Да, нужно только проследить, чтобы ваш файл подключался позже, чем файл плагина. При таком подходе можно не копировать полностью стили плагина, а добавлять в файл только ваши изменения.
В общем случае стили гораздо проще переопределять, чем код, достаточно указать более точные селекторы. Тогда и порядок загрузки файлов не важен.
Сергей, хотелось бы уточнить. Могу ли я подключить файл стилей плагина, лежащий в дочерней теме в файле functions.php дочерней темы с помощью функции wp_enqueue_style? Простите чайника, я не очень хорошо ещё пока разбираюсь в wordpress и PHP.
И, если да, то тогда выглядеть эта запись должна примерно так:
wp_enqueue_style( ‘myPluginStylesheet’, WP_PLUGIN_URL . ‘/myPlugin/stylesheet.css’ )
Или мне надо использовать другую функцию?
Можете использовать.
Если ваш файл стилей находится в вашей дочерней теме, то для пути можете использовать
get_stylesheet_directory_uri() .’/ПутьКФайлуСтилейВДочернейТеме.css’