Поддержка Проблемы и решения Переопределение файлов js родительской темы

  • Добрый день. Подскажите пожалуйста в следующем вопросе. Путь к файлу в родительской теме \themes\store\js\external.js. В дочерней теме также создал папку js, скопировал туда external.js, изменил. А как его подключить, чтобы он загружался после external.js родительской темы? Спасибо.

Просмотр 5 ответов — с 1 по 5 (всего 5)
  • В дочерней теме также создал папку js, скопировал туда external.js, изменил. А как его подключить, чтобы он загружался после external.js родительской темы?

    Вы уверены, что хотите получить конфликты?

    Просто скопировали, не подключали?
    Почитайте описание функций wp_enqueue_script, get_template_directory_uri и get_stylesheet_directory_uri

    Сейчас подключил wp_enqueue_script('external', get_stylesheet_directory_uri() . '/js/external.js' );
    Естественно, дочерний грузится раньше.
    А вот про конфликты я как-то не подумал. А возможно ли отключить external.js родительской темы и подключить его только из дочерней?

    А возможно ли отключить external.js родительской темы и подключить его только из дочерней?

    Если родительская тема это позволяет.
    Найдите где этот скрипт подключается (скорее всего в functions.php, но проверьте везде) и если есть проверка существования функции, то перепишите её в дочке как Вам нужно.

    1. Порядок вызова обработчика хука можно изменить. См. https://developer.wordpress.org/reference/functions/add_action/

    2. Повторный вызов wp_enqueue_script() с тем же хендлером переопределяет источник скрипта. Можно, опять же, использовать wp_deregister_script() чтобы наверняка.

    Разобрался, как отключить. Фишка в том, что для отключения external.js надо отключить custom.js, они связаны

    wp_enqueue_script( 'store-externaljs', get_template_directory_uri() . '/js/external.js', array('jquery'), '20120206', true );
        if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
            wp_enqueue_script( 'comment-reply' );
        }
        wp_enqueue_script( 'store-custom-js', get_template_directory_uri() . '/js/custom.js', array('store-externaljs') );

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

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