Поддержка Проблемы и решения При добавлении functions.php в дочернюю тему сайт перестает работать

  • Сделал дочернюю тему Storefront. При добавлении в тему файла functions.php сайт перестает работать. Файл взял из родительской темы, не работает. Взял с другого сайта (тема та же) тоже не работает. В чем может быть причина?

Просмотр 15 ответов — с 1 по 15 (всего 15)
  • functions.php работает сразу из 2-х тем — и родительской и дочерней. соответственно, php падает, так как у вас там одинаковые функции (с одним и тем же названием) прописаны.

    functions.php в дочерней теме должен быть пустым. ну с <?php на первой строчке и все. ну и стандартно — убедитесь, что файл в кодировке UTF8 без БОМ.

    В чем может быть причина?

    В том, что «Файл взял из родительской темы».

    матчасть:

    Использование functions.php
    В отличие от style.css, файл functions.php дочерней темы не заменяет собой соответствующий файл родительской темы. Вместо этого, он загружается в дополнение к родительскому файлу functions.php.

    Т.е. не может быть одинаковых функций в родителе и дочке.

    functions.php в дочерней теме должен быть пустым.

    Да ладно, Вам 🙂

    Да ладно, Вам 🙂

    ну изначально пустым 🙂

    ну изначально пустым

    Ну тогда он вообще не нужен.

    Модератор Yuri

    (@yube)

    Скажем так: не должен дублировать functions.php родительской. 🙂

    Ну тогда он вообще не нужен.

    да это уже семантика 😉 при создании дочерней темы файл создается пустым, а уже потом туда складируются нужные функции. вы же прекрасно поняли о чем я, зачем опять на пустом месте спорить? 🙂

    при создании дочерней темы файл создается пустым,

    Он же не сам создаётся. Зачем же его создавать, если ничего в него не писать? Вот когда понадобится — тогда и вперёд.

    Не, в этом случае я правда не понимаю смысла и лишних телодвижений (и даже рисков) для создания и пусть мизерных, но всё же затрат ресурсов по обработке его ВП-ом.

    НО! Его всё же нужно создать, прописав в него подключение стилей родителя вместо @import в style.css.

    [режим зануды on]

    Скажем так: не должен дублировать functions.php родительской

    не должен дублировать ФУНКЦИИ из functions.php родительской.
    [режим зануды off]
    😉

    ох SeVlad, не было меня на форуме пару месяцев, но ничего не изменилось 🙂 все по-прежнему, споры буквально ни о чем на пустом месте, я по этому скучал 😉

    Модератор Yuri

    (@yube)

    не должен дублировать ФУНКЦИИ

    Тогда уже «незамещаемые функции» :p

    В style.css дочерней темы надо все вставлять из родительской или достаточно прописать «@import url(«../storefront/style.css»);»?

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    достаточно прописать «@import url(«../storefront/style.css»);»?

    Можно и так, но рекомендуется подключение с помощью wp_enqueue_style в functions.php

    <?php
    add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_styles' );
    function my_theme_enqueue_styles() {
        wp_enqueue_style( 'parent-style', get_template_directory_uri() . '/style.css' );
     
    }
    ?>

    Также, для облегчения процесса можно воспользоваться плагином Child Theme Configurator.

    Немного про дочерние темы с картинками и видео.

    А после активации дочерней темы сайт заново надо настраивать?

    да. как минимум виджеты упадут.

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    А после активации дочерней темы сайт заново надо настраивать?

    Для копирования настроек в плагине Child Theme Configurator есть галочка «Copy Menus, Widgets and other Customizer Settings from the Parent Theme to the Child Theme:»

    Ну вроде наладил.Спасибо что терпели и всё разжевали

Просмотр 15 ответов — с 1 по 15 (всего 15)
  • Тема «При добавлении functions.php в дочернюю тему сайт перестает работать» закрыта для новых ответов.