В wp_enqueue_style первый параметр — это идентификатор файла стилей. Именно по нему определяется один это файл или нет. Т.к. у Вас они разные — подключаются оба файла.
Denis Yanchevskiy (@denisco)? это я экспериментировал. Изначально они были одинаковы в обоих случаях — style.css. Это правильно два раза указывать?
А если мне надо иметь дочерний основной стиль и дополнительный дочерний стиль — я могу создать два файла style1 и style2 и указать их в том коде один в первом месте, другой во втором случае? Это правильно будет? Но зачем плагин создает ссылки на два одинаковых файла?
Если Вы используете дочернюю тему, у Вас будет один style.css от родительской темы и один style.css от Вашей дочерней.
Если Вам нужны дополнительные файлы стилей, Вы можете подключить их аналогично с помощью wp_enqueue_style. Как их называть и где хранить — это на Ваше усмотрение.
Но зачем плагин создает ссылки на два одинаковых файла?
Какой?
Модератор
Юрій
(@yube)
get_template_directory_uri — родительская
get_stylesheet_directory_uri() — дочерняя
Denis Yanchevskiy (@denisco) , плагин Child Themes Generator, создает код
function jurvrn_easywp_enqueue_child_styles() {
$parent_style = 'parent-style';
wp_enqueue_style($parent_style, get_template_directory_uri() . '/style.css' );
wp_enqueue_style(
'child-style',
get_stylesheet_directory_uri() . '/style.css',
array( $parent_style ),
wp_get_theme()->get('Version') );
}
add_action( 'wp_enqueue_scripts', 'jurvrn_easywp_enqueue_child_styles' );
одинаковые файлы.
Как мне правильно подключить дочерний файл стилей и дополнительный файл? так:
function jurvrn_easywp_enqueue_child_styles() {
$parent_style = 'parent-style';
wp_enqueue_style($parent_style, get_template_directory_uri() . '/style-child-1.css' );
wp_enqueue_style(
'child-style',
get_stylesheet_directory_uri() . '/style-child-2.css',
array( $parent_style ),
wp_get_theme()->get('Version') );
}
add_action( 'wp_enqueue_scripts', 'jurvrn_easywp_enqueue_child_styles' );
Юрий (@yube), опытным путем выяснил что подключаются именно стили из файлов дочерней темы если в первом случае указать style1 и style2 и создать два таких файла…
P.S. раньше я подключал стили так. Как правильнее (и не понятно мне причем там FontAwesome…)
/*подключаем дополнительный стиль новых элементов в теме*/
if ( !function_exists( 'chld_thm_cfg_parent_css' ) ):
function chld_thm_cfg_parent_css() {
wp_enqueue_style( 'chld_thm_cfg_parent', trailingslashit( get_template_directory_uri() ) . 'style-addon.css', array( ) );
}
endif;
add_action( 'wp_enqueue_scripts', 'chld_thm_cfg_parent_css', 10 );
/*подключаем мобильный стиль темы */
if ( !function_exists( 'child_theme_configurator_css' ) ):
function child_theme_configurator_css() {
wp_enqueue_style( 'chld_thm_cfg_separate', trailingslashit( get_stylesheet_directory_uri() ) . 'style-mobile.css', array( 'chld_thm_cfg_parent','easywp-maincss','font-awesome' ) );
}
endif;
add_action( 'wp_enqueue_scripts', 'child_theme_configurator_css', 20 );
Почему в дочерней теме создается ссылка на подключение одного файла стиля два раза?
Бывает, что родительская тема сама подключает файл style.css
из дочерней, как это сделано во всех стандартных темах WordPress, в том числе и в Twenty Nineteen.
Если создана дочерняя тема, то функция get_stylesheet_uri() возвращает URL файла style.css
из неё, а не из родительской.
В этом случае в дочерней теме имеет смысл подключить файл стилей из родительской: get_template_directory_uri() . '/style.css'
, а вот второй раз подключать свой собственный файл стилей не нужно.
Sergey Biryukov (@sergeybiryukov), понятно, похоже на мой случай — что родительская тема будет подключать свой же основной стиль как бы по ссылке, которая прописана в дочерней теме.
А если я хочу ещё свой дополнительный отдельный стиль подключить — то как раз второй файл для меня и будет? А если ещё третий нужен?
Плагин другой создал вообще такой код:
и там откуда то ещё и третий файл стилей взялся rtl.css ???? Впрочем по вашей ссылке он там тоже есть…
<?php
// Exit if accessed directly
if ( !defined( 'ABSPATH' ) ) exit;
// BEGIN ENQUEUE PARENT ACTION
// AUTO GENERATED - Do not modify or remove comment markers above or below:
if ( !function_exists( 'chld_thm_cfg_locale_css' ) ):
function chld_thm_cfg_locale_css( $uri ){
if ( empty( $uri ) && is_rtl() && file_exists( get_template_directory() . '/rtl.css' ) )
$uri = get_template_directory_uri() . '/rtl.css';
return $uri;
}
endif;
add_filter( 'locale_stylesheet_uri', 'chld_thm_cfg_locale_css' );
if ( !function_exists( 'chld_thm_cfg_parent_css' ) ):
function chld_thm_cfg_parent_css() {
wp_enqueue_style( 'chld_thm_cfg_parent', trailingslashit( get_template_directory_uri() ) . 'style.css', array( ) );
}
endif;
add_action( 'wp_enqueue_scripts', 'chld_thm_cfg_parent_css', 10 );
if ( !function_exists( 'child_theme_configurator_css' ) ):
function child_theme_configurator_css() {
wp_enqueue_style( 'chld_thm_cfg_separate', trailingslashit( get_stylesheet_directory_uri() ) . 'ctc-style.css', array( 'chld_thm_cfg_parent','easywp-maincss','font-awesome' ) );
}
endif;
add_action( 'wp_enqueue_scripts', 'child_theme_configurator_css', 10 );
// END ENQUEUE PARENT ACTION