Поддержка Проблемы и решения Проблема с дочерней темой — Перенос файла стилей, через PHP

  • Всем привет!

    Недавно появилось обновление для темы Noteblog, и так как я изменял некоторые файлы темы (после обновления теряются изменения, которые были сделаны в файлах темы), я принял решение создать дочернюю тему, и познакомится с ними поближе. И здесь у меня появилась проблема.

    Я узнал, что есть два способа подключения файла стилей родительской темы. Это через CSS (import) и актуальный способ от Константина Ковшенина, с помощью PHP.

    Вот как раз с PHP, у меня и проблема.

    Делаю папку дочерней темы «noteblog-child» для создания дочерней темы. Написал CSS код описания темы в style.css и создал файл functions.php написав следующий код:

    <?php
    // Импорт родительской темы
    add_action( 'wp_enqueue_scripts', 'noteblog_theme_styles' );
    function noteblog_theme_styles() {
        wp_enqueue_style( 'noteblog-style', get_template_directory_uri() . '/style.css' );
    }
    ?>

    И итого почему-то съехал дизайн сайта.
    Скриншоты:
    https://prntscr.com/gz9i1v
    https://prntscr.com/gz9i27

    Пробовал также другой код из Английского Кодекса WP — https://codex.wordpress.org/Child_Themes
    Тоже такая же ситуация

    Попробовал через CSS, с помощью import. Дочерняя тема работает прекрасно.
    Скриншоты:
    https://prntscr.com/gz9i26
    https://prntscr.com/gz9i2g

    Особых изменений в файлах темы я не делал, но я делал изменения только в этих файлах:

    footer.php (Изменял текст копирайта)
    header.php (Добавлял фавиконки и иконки для моб. версий)
    template-parts/content.php и template-parts/content-page.php (Добавлял функцию вывода автора записей/страниц и функцию вывода даты обновления записей/страниц)

    Эти файлы я изменял еще до создания дочерней темы, и родительская тема работает нормально с этими изменениями.

    Как реализовать работу дочерней темы с помощью PHP, в такой ситуации?

    Тема: Noteblog, версия 0.5 (отсутствует в оф. каталоге WP, после обновления темы 0.6) Файлы темы в Trac: https://themes.trac.wordpress.org/browser/noteblog/0.5

    Буду рад, если поможете с данной проблемой.

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Тема Noteblog использует библиотеку Bootstrap. В самой теме основная таблица стилей загружается позже Bootstrap, а вот в дочерней — раньше, приводя к конфликту стилей.

    Для восстановления правильной последовательности можно указать, что таблица стилей зависит от Bootstrap, добавив array( 'bootstrap' ) третьим параметром в wp_enqueue_style():

    
    add_action( 'wp_enqueue_scripts', 'noteblog_theme_styles' );
    function noteblog_theme_styles() {
        wp_enqueue_style( 'noteblog-style', get_template_directory_uri() . '/style.css', array( 'bootstrap' ) );
    }
    

    @sergeybiryukov

    Большое спасибо! Ваше решение мне помогло.

    Я так и думал, что ситуация связана с Bootstrap. Я как раз смотрел на эти строчки в коде и думал, что как-то с этим Bootstrap нужно решить эту проблему.

    Поправил код functions.php в дочерней теме по этому коду, который вы написали, и дочерняя тема заработала как надо.

    За подробное объяснение проблемы, тоже спасибо! Теперь буду знать про array( 'bootstrap' )

Просмотр 2 ответов — с 1 по 2 (всего 2)
  • Тема «Проблема с дочерней темой — Перенос файла стилей, через PHP» закрыта для новых ответов.