Есть ли способ использовать wp_enqueue_script () для встроенных сценариев?
Я делаю это, потому что мой встроенный скрипт зависит от другого скрипта, и я бы хотел, чтобы его можно было вставить после загрузки.
Кроме того, это встроенный скрипт, потому что я передаю переменные php в javascript (например, путь к теме и т. Д.)
Заранее спасибо.
wp-enqueue-script
chrisjlee
источник
источник
wp_add_inline_script()
wp_add_inline_script с WordPress JQueryТолько не делайте его встроенным скриптом, а затем передавайте ему динамические параметры как переменные. Отто написал отличное руководство о том, как сделать это эффективно.
WordPress 3.3 также сделает это более мощным: https://core.trac.wordpress.org/ticket/11520
источник
Это решение похоже на ответ @ scribu , но оно имеет форму
wp_enquque_script()
и помещает скрипт в заголовок, если его зависимости включены в заголовок.Примечание: здесь используются анонимные функции, но для версий PHP до 5.3 это может быть легко преобразовано в класс.
источник
Начиная с WordPress 4.5 вы можете использовать wp_add_inline_script () :
источник
Лучший способ, который я нашел, это использовать
wp_localize_script()
, как подсказал @scribu.Обычно я решил использовать встроенный Javascript, потому что мне нужно было предоставить некоторые PHP-переменные для моего скрипта. Это можно решить с помощью
wp_localize_script()
. Я приведу пример:У вас есть массив
$aFoo
с некоторыми опциями, и вам нужно передать его в скрипт.Используя встроенный скрипт:
Использование
wp_localize_script()
:Тогда
pathToScript/script.js
будет:Таким образом, вам больше не нужны встроенные скрипты.
источник
scribu абсолютно корректен. В любом случае, я хочу добавить немного информации:
Я хочу, чтобы моя функция выводила скрипт один раз, независимо от того, как часто он вызывается. Это функция, связанная с контентом, поэтому я не могу ждать никаких хуков. Я использовал scribus infos и некоторое чтение ядра WP, чтобы придумать это:
Используя этот метод, я могу напечатать встроенный скрипт один раз. В моем случае у меня есть функция, которая создает кнопку общего доступа и требует выполнения одного скрипта для всех кнопок. Но только один раз.
источник
echo
Подход встроенного скрипта , как была построена тема Двадцать Семнадцать, по крайней мере в одной точке. И я тоже использую эту технику. Прекрасно работает, и позволяет подключаться в разных местах.