eduplessis
  • 0
Новичок

Файлы JavaScript, зарегистрированные в родительской теме, не будут загружаться при вызове wp_enqueue_script() в дочерней теме?

  • 0

Я создаю родительскую тему фреймворка functions.php, и в родительском я хочу зарегистрировать все возможные js-файлы, которые я часто использую, и если я хочу, чтобы он загружал их, в дочернем functions.php я просто должен использовать wp_enqueue_script() .

Но это не работает…

Любая подсказка, почему?

Share
  1. Дочерний файл functions.php загружается перед родительским functions.php, поэтому вы регистрируете их после постановки в очередь. Вместо этого попробуйте поставить скрипты в очередь на крючок 'after_setup_theme' .

    • 0
    • Хорошо, проверю это прямо сейчас!!!

      • 0
    • Спасибо, работает отлично… но я поставил его на хук «init»

      • 0
    • Я по-прежнему советую не разделять вещи таким образом — регистрация скриптов в родительском файле и постановка их в очередь в дочернем файле может работать для вашего использования, но это усложняет задачу для разработчиков, которые приходят позже и хотят создать новый дочерний файл. тема — они должны воспроизвести весь код, который вы ставите в очередь, чтобы заставить его работать. Предполагается, что дочерняя тема изменяет родительскую, а не воспроизводит исходную дочернюю тему родителя…

      • 0
    • В целом я согласен с вашими комментариями о плохой форме, но я думаю, что это не применимо в этом случае использования. То, что он @Eduplessis делает в своей родительской теме, по сути то же самое, что WordPress делает в wp_default_scripts() in /wp-includes/script-loader.php ; т.е. он регистрирует свои пользовательские сценарии с помощью wp_register_script(), поэтому его дочерние темы должны вызывать только более простую форму wp_enqueue_script() вместо того, чтобы указывать полное имя файла сценария и путь из каталога родительской темы. ПОМОЩЬ.

      • 0
    • Я согласен с тем, что у шаблона есть свое применение… но я исхожу из того, что мне приходилось отлаживать плохо документированные дочерние темы и пытаться помочь клиентам понять, когда на их сайте вызываются разные функции. Так как wp_register_script и wp_enqueue_script работают вместе, их наличие в разных файлах может затруднить их отслеживание позже.

      • 0
    • Спасибо за ваши комментарии. Фреймворк тем без какой-либо документации — это плохо… или любой проект в gen. но так как эта структура тем предназначена только для ускорения моей разработки, и я всегда делаю небольшой документ… я думаю, что это правильный выбор — поместить все регистры всех моих скриптов в мой родитель и конкретную нагрузку в дочерний… точно так же, как WordPress делать со всеми js, включенными по умолчанию.

      • 0
  2. Плохой тон так разбивать код. Вы всегда должны располагать свои функции и хуки, которые их вызывают, в одном и том же месте, чтобы упростить отладку.

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

    • 0

Оставить ответ

You must login to add an answer.