У меня есть фрагмент JavaScript, который я хочу вставить в нижний колонтитул страницы. Это код отслеживания, скажем, похож на Google Analytics. У него нет зависимостей, это отдельный фрагмент кода.
Я могу сделать что-то подобное
function render_tracking_code(){
wp_enqueue_script( 'depends-js', 'https://rdiv.com/dummy.js', array(), '0.01', true );
wp_add_inline_script( 'depends-js', 'aWholeBunchOfJavascriptCode' );
}
add_action( 'wp_enqueue_scripts', 'render_tracking_code' );
Кажется немного глупым (dummy.js - пустой файл), но работает. Есть ли способ пропустить зависимость?
источник
wp_add_inline_script()
Без зависимостей все еще рассматривается в 4.9.9, это не обязательно означает , что он будет добавлен. Поэтому целесообразно дождаться подтверждения, прежде чем использовать эту функцию.Обновление: WordPress добавил поддержку добавления встроенных скриптов и стилей без зависимости в v5.0. Смотрите ответ @ birgire для реализации.
При использовании
wp_add_inline_script()
, вWP_Scripts::print_inline_script()
конечном итоге будет использоваться для вывода встроенных сценариев. По замыслуprint_inline_script()
требует действительной зависимости$handle
.Поскольку в этом случае нет зависимости,
wp_add_inline_script()
это не правильный инструмент для работы. Вместо создания поддельного файла зависимостей (и нежелательного дополнительного HTTP-запроса) используйтеwp_head
илиwp_footer
для вывода встроенного сценария:Как правило, JavaScript должен быть добавлен в
.js
файл и используя в очередиwp_enqueue_script()
наwp_enqueue_scripts
крючке. Данные могут быть сделаны доступными для сценария с помощьюwp_localize_script()
. Иногда все же может потребоваться добавить встроенный скрипт.источник
Один из способов сделать это - создать функцию, которая отображает ваш скрипт внутри
<script>
тега, и подключить его кwp_print_footer_scripts
действию. Вы должны позаботиться о том, чтобы избежать всего, что строго не контролируется, но в целом это безопасный и простой метод.Например:
источник