• При создании дочерней темы на WordPress 4.9.8 столкнулся с проблемой.
    Дочерняя тема работает все прекрасно, не работают файлы во внутренних папках.
    Например папка inc содержит файл header-functions.php его мне нужно редактировать.
    Обратите внимание, мне НЕ нужно «переопределять» функции! А просто тупо например поменять местами <h1> с ближайшим <p>. И делать это естественно хочется в дочерней теме.

    Перепробовал все что смог найти.
    Все возможные варианты на тему : require_once( get_stylesheet_directory(). ‘/header-functions.php’ );
    В разных вариациях. Результат ошибка, ложиться сайт. (500 вроде ошибка)
    Пробовал так же файл header-functions.php вытащить из папки inc в корневую.
    Ничего не помогает…
    Как быть то ?)

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Ну что бы понятнее было : создаю functions.php чистый, в дочерней теме и в нем уже пытаюсь писать на темы : require_once( get_stylesheet_directory(). ‘/header-functions.php’ );
    Вообще много всяких вариантов перепробовал, все и не вспомнить теперь. Результат один, все умирает.

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

    (@yube)

    Если в родительской /inc/header-functions.php подключен через php-функции include/require, то ничего Вы с ним не сделаете. WP умеет манипулировать только шаблонами, подключаемым через функции WP.

    Разве что функции в этом файле замещаемые ( определенные через if (function_exists()), тогда их можно заменить своими одноименными.

    • Ответ изменён 6 лет, 2 месяца назад пользователем Юрій.

    В родительской теме, в файле functions.php
    он подключен вот так :
    require_once( COLORMAG_INCLUDES_DIR . ‘/header-functions.php’ );

    ну да, кажется так и есть
    if ( ! function_exists( ‘colormag_setup’ ) ) :

    «тогда их можно заменить своими одноименными.»
    А как это вообще правильно сделать то ?

    Да и опять же, замкнутый круг какой то )) мне бы вовсе не нужно «заменять» или «переопределять» функции!
    Там в этом файле header-functions.php идет в основном html
    Типо:
    <div class=»news-bar»>
    <div class=»inner-wrap clearfix»>
    и тд…
    Мне его тупо верстать надо +)))
    Просто не в родительской а в дочерней теме…

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

    (@yube)

    В functions.php дочерней или его инклюде

    function colormag_setup() {
    # свой код
    }
    

    Но лучше, наверно, так:

    if ( ! function_exists( 'colormag_setup' ) ) {
        function colormag_setup() {
    # свой код
        }
    }
    Модератор Юрій

    (@yube)

    Там в этом файле header-functions.php идет в основном html
    Типо:
    <div class=»news-bar»>

    Если это внутри функции, то полностью копируете функцию, а затем меняете внутри что надо.

    Попробовал. Это кусок который Вы дали :

    if ( ! function_exists( ‘colormag_setup’ ) ) {
    function colormag_setup() {
    # свой код
    }
    }
    Начал творить что то не понятное. По выводил в менюху сайта все страницы которые только есть +)) (даже в чистом виде).
    В него пробую вставлять код, тоже чудеса какие то происходят.

    Но тем не менее, как вариант, работает тупо, копирование всего содержимого header-functions.php прям в файл functions.php дочерней темы.
    Тогда да, его можно редактировать, но как то это все не кашерно…
    Если мне понадобиться (а скорее всего понадобиться) еще и другие файлы из внутренних папок редактировать? То что же все их содержимое хранить в functions.php ?

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

    (@yube)

    копирование всего содержимого header-functions.php

    Зачем всего? Только функций (там же функции, судя по названию?), в которых нужно что-то менять.

    То что же все их содержимое хранить в functions.php ?

    Кладите в другие файлы и подключайте их инклюдом. Хоть построчно можно нарезать.

    Да Вы правы. Кажется разобрался….
    Спасибо!

Просмотр 11 ответов — с 1 по 11 (всего 11)
  • Тема «Как подключить файлы из папок?» закрыта для новых ответов.