Поддержка Темы и шаблоны Не устанавливается дочерняя тема без style.css

  • Решено jurvrn

    (@jurvrn)


    Создал дочернюю тему. В файле functions.php прописаны подгружаемые стили. Но WordPress ругается на отсутствие style.css. Но у меня его нет, ссылки на него я его не указывал.
    Пробовал два варианта.
    1.

    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() ) . 'style-addon.css', array( 'chld_thm_cfg_parent','easywp-maincss','font-awesome' ) );
        }
    endif;
    add_action( 'wp_enqueue_scripts', 'child_theme_configurator_css', 10 );

    2.

    add_action( 'wp_enqueue_scripts', 'jurvrn_on_easywp_enqueue_child_styles' );
    
    function jurvrn_on_easywp_enqueue_child_styles()
    	{
       $parent_style = 'parent-style';
    	wp_enqueue_style($parent_style, get_template_directory_uri() . '/style.css' );
    	wp_enqueue_style('child-style-addon', get_stylesheet_directory_uri() . '/style-addon.css', array( $parent_style ), wp_get_theme()->get('Version') );
    	wp_enqueue_style('child-style-mobile', get_stylesheet_directory_uri() . '/style-mobile.css', array( $parent_style, 'child-style-addon' ), wp_get_theme()->get('Version'), 'all (max-width:1167px)' );
    	}
Просмотр 8 ответов — с 1 по 8 (всего 8)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Но WordPress ругается на отсутствие style.css. Но у меня его нет, ссылки на него я его не указывал.

    style.css — единственный необходимый файл дочерней темы, без него никакой темы нет 🙂

    Все остальные файлы, включая functions.php, не обязательны.

    Sergey (@sergeybiryukov), так пусть этот файл берется из родительсткой темы, а вот структура моей дочерней темы. Так нельзя?

    functions.php (здесь подгружаю дополнительные стили и дополнительные функции, чтобы не лазить в основную тему)
    functions-addon.php
    header.php
    screenshot.png
    style-addon.css
    style-mobile.css

    Модератор Юрий

    (@yube)

    так пусть этот файл берется из родительсткой темы, а вот структура моей дочерней темы. Так нельзя?

    При выводе — можно. Но в любом случае в директории темы должен быть файл style.css с заголовками. Иначе откуда движку знать, как зовут тему и, если она дочерняя, то как зовут мать её? В файле может не быть больше ничего, кроме заголовков.

    Юрий (@yube), вас понял, создам пустой файл только с описанием.
    Просто я думал, что прописав дополнительные стили в functions.php всё оттуда и возьмется (в том числе заголовок)
    А какой правильный, как вы говорите «канонический» вариант 1 или 2 подключения стилей? (они указаны в первом сообщении темы)

    Юрий, если сайт стилей пустой,то тогда какой смысл создавать дочернюю тему?

    Модератор Юрий

    (@yube)

    если сайт стилей пустой,то тогда какой смысл создавать дочернюю тему?

    Кроме стилей, существуют еще шаблоны и функции, которые порой бывает нужно изменить или дополнить, не трогая основную, родительскую, тему.

    intman1958 (@intman1958), Юрий (@yube)
    решил что пустым не будет, туда запишу изменения родительских стилей. Но ещё буду разрабатывать свои стили в файле style-addon.css и style-mobile.css.
    Как мне правильно их присоединить?

    add_action( 'wp_enqueue_scripts', 'jurvrn_on_easywp_enqueue_child_styles', 30 );
    function jurvrn_on_easywp_enqueue_child_styles()
    {
        $parent_style = 'parent-style';
        wp_enqueue_style($parent_style, get_template_directory_uri() . '/style.css' );
        wp_enqueue_style('child-style-addon', get_stylesheet_directory_uri() . '/style-addon.css', array( $parent_style ), wp_get_theme()->get('Version') );
        wp_enqueue_style('child-style-mobile', get_stylesheet_directory_uri() . '/style-mobile.css', array( 'child-style-addon', $parent_style ), wp_get_theme()->get('Version') );
    }

    или

    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( 'easywp-maincss','chld_thm_cfg_parent','font-awesome' ) );
        }
    endif;
    add_action( 'wp_enqueue_scripts', 'child_theme_configurator_css', 20 );
    

    если удобнее посмотреть в отладчике — вот ссылка https://pastebin.com/s6DpWwa3

    • Ответ изменён 2 мес., 2 нед. назад пользователем  jurvrn. Причина: добавление ссылки

    решено

Просмотр 8 ответов — с 1 по 8 (всего 8)