• ДОБРО ПОЖАЛОВАТЬ В КЛУБ ПО WORDPRESS

    Мы активно растущий клуб по WordPress и нам нужна помощь каждого человека, в том числе и Ваша! Не стесняйтесь и станьте частью большого сообщества.
    Мы делимся новостями, отытом и полезными советами! Пройдите простую регистрацию, чтобы пользоваться всеми возможностями нашего клуба.

    Присоединяйтесь к нам, вам обязательно понравится - Присоединится

Вопрос Дочерняя тема

  • Автор темы Автор темы agga
  • Дата начала Дата начала

agga

СВОЙ
Всем привет. Вопрос такой. Создал по всем правилам дочернюю тему (basel, в комплекте идет дочка от производителя темы). Переношу для редактирования нужный файл в дочернюю тему, но он почему-то в итоге не отрабатывает. Загружается все равно из основной темы. В чем может быть причина? Структуру соблюдаю. На что обратить внимание? Спасибо.
 
Тоже все время работаю через дочерние. Но бывает такая проблема как и у вас. Не все файлы срабатывают в дочерней теме. Какие-то работают, а какие-то нет. Думаю там надо иногда различные функции подправлять, но я в php не селен. Тоже охота понять этот вопрос.
 
о как. Авторы темы ответили: Child theme can override only wordpress template files like content.php, index.php etc. Any files located in inc folders can’t be overriden.
Смысл тогда дочерней темы?
 
agga, я думаю это все зависит от разработчиков.

Кстати у меня тоже не сработал файл с виджетами из такой же папки include.
 
Тут разработчики не причем. Есть кодекс вордпресса. Сразу скажу, я его подробно не читал. Но там главное правильно создать файл style.css. Остальное, как я понял, все просто - копируешь, соблюдая структуру, редактируешь и эти файлы заменяют оригиналы.
 
Но там главное правильно создать файл style.css. Остальное, как я понял, все просто - копируешь, соблюдая структуру, редактируешь и эти файлы заменяют оригиналы.
CSS и соблюдение структуры это понятно. Но бывает, что это не помогает. Мне иногда (потому как плохо разбираюсь php) получалось писать новую функцию, которая перезаписывала из родной темы. И тогда нормально, но это не всегда получается.
 
Придется тогда по старинке - сравнивать старую и новую тему с помощью beyond compare и переносить свои изменения в новую тему. Эх, а хотелось малой кровью 🙂
 
Еще написал: If you want to edit some PHP function from that file, you just need to copy this function to the functions.php file in the child theme and make your customizations.
 
Ясно. C каждой темой надо разбираться по отдельности, как и везде есть свои нюансы.
 
А какой именно файл из темы вы хотите заменить? Когда мне понадобилось внести изменения в файл с javascript в дочерней теме то пришлось использовать функцию wp_enqueue_script (подробнее можно почитать тут: wp_enqueue_script() | Function | WordPress Developer Resources).
В двух словах - мы прописываем в functions.php сначала
wp_dequeue_script и wp_deregister_script для отключения загрузки файла родительской темы, и затем загружаем свой через wp_enqueue_script. Примерно так:
Код:
add_action( 'wp_enqueue_scripts', 'my_custom_scripts', 100 );
function my_custom_scripts()
{
    wp_dequeue_script( 'parent-script-handle' );
    wp_deregister_script( 'parent-script-handle' );
    // Now the parent script is completely removed

    /*
     * Now enqueue you child js file, no need to register if you are not
     * doing conditional loading
     */
    wp_enqueue_script( 'child-script-handle', get_stylesheet_directory_uri() . '/child-script.js' );
    //Now we have done it correctly
}
 
А какой именно файл из темы вы хотите заменить?
Спасибо за инфо. Полезно. У меня в теме есть две папки с файлами (их больше, но для примера): inc и woocommerce. Так вот из первой не удается совсем перенести файлы, они не заменяются, со второй все нормально. Как решил: Я просто выдергивал нужные функции из этих файлов (папка inc) и копировал их в файл functions.php из темы.
 
Назад
Сверху