wp_enqueue_script()
Правильно підключає скрипт (JavaScript файл) на сторінку.
Використовувати цю функцію для підключення js файлів важливо, тому що так ви зможете без зайвих проблем об’єднувати JS файли в один. Також у деяких випадках позбавтеся конфліктів скриптів, коли залежний скрипт підключається до основного (того від якого він залежить).
Функція додає скрипт, тільки якщо він ще не був доданий та інші скрипти, від яких він залежить, зареєстровані. Залежні скрипти додаються автоматично.
ВАЖЛИВО! Це помилка розробників-початківців. Функція нічого не виведе, якщо тема не використовує wp_footer() . Саме під час виклику цих функцій спрацьовує хук, який додає скрипти.
Якщо скрипт уже зареєстрований за допомогою wp_register_script() , то для його підключення в цій функції потрібно вказати лише ідентифікатор скрипта (у першому параметрі).
// jquery реєструється в WP за промовчанням. // Тому для його підключення достатньо одного рядка: wp_enqueue_script('jquery');
Якщо скрипт не зареєстрований, його можна зареєструвати і підключити однією функцією – wp_enqueue_script() :
wp_enqueue_script('newscript', get_template_directory_uri() . '/js/custom_script.js');
З версії 3.3. wp_enqueue_script() можна викликати під час створення сторінки. В цьому випадку скрипт буде підключений в підвалі, в момент спрацювання події wp_footer .
Функція зазвичай викликається під час наступних подій (вішатися на хуки):
- wp_enqueue_scripts – для зовнішньої частини сайту;
- admin_enqueue_scripts – для адмін-панелі;
- login_enqueue_scripts – для сторінки входу (wp-login.php).
- wp_script_add_data() — використовуйте цю функцію, коли потрібно підключити скрипт із умовою, наприклад,
<!--[if lt IE 9]>...<![endif]-->
. - wp_add_inline_script() — використовуйте цю функцію, коли потрібно додати JS код із PHP.
У версії 3.5 WordPress змінив положення про мінімізацію скриптів та CSS стилів. До цього мінімізовані файли мали розширення: .js
і .css
, відповідно, а чи не мінімізовані .dev.js
і .dev.css
. Тепер мінімізовані файли мають розширення: .min.js
і .min.css
, а звичайні .js
і .css
.
Повертає
null
. Нічого не вертає.
Використання
wp_enqueue_script($handle, $src, $deps, $ver, $in_footer);
Шаблон використання
//add_action( 'admin_enqueue_scripts', 'my_scripts_method'); //add_action( 'login_enqueue_scripts', 'my_scripts_method'); add_action( 'wp_enqueue_scripts', 'my_scripts_method' ); function my_scripts_method(){ wp_enqueue_script( 'newscript', get_template_directory_uri() . '/js/custom_script.js'); }
-
$handle
(рядок) (обов’язковий) Назва скрипта (робоча назва). Рядок у нижньому регістрі.
Якщо рядок містить знак запитання (?): scriptaculous?v=1.2 , то попередня частина буде назвою скрипта, а все, що потім буде додано в УРЛ як параметри запиту. Так можна вказувати версію скрипта, що підключається.
-
$src
(рядок) УРЛ файл скрипт. Наприклад: http://example.com/wp-content/themes/my-theme/my-theme-script.js .
Цей параметр необхідний лише тоді, коли скрипт не зареєстрований та WordPress ще не знає про цей скрипт, дивіться функцію wp_register_script() .
Не потрібно писати УРЛ жорстко, він має визначатися динамічно. Для цього використовуйте функції отримання URL:
- plugins_url() – для плагінів
- get_template_directory_uri() – для тем.
Посилання на зовнішні скрипти можна вказувати без зазначення протоколу: //otherdomain.com/js/their-script.js .
Вже зареєстровані у WP скрипти дивіться нижче у цій статті.
За замовчуванням: ”
-
$deps
(масив) -
Масив назв скриптів яких залежить цей скрипт; скрипти, які повинні бути завантажені перед цим скриптом. Цей параметр необхідний лише у випадку, якщо WordPress ще не знає про цей скрипт.
За замовчуванням: array() -
$ver
(рядок) Рядок вказує версію скрипта, якщо вона має. Цей параметр використовується для того, щоб переконатися, що клієнт отримав вірну версію скрипту, а не кеш.
Якщо параметр не вказано, то як версія скрипта буде використана версія WordPress.
Якщо вказати null , то жодна версія не буде додана.
Типово: false
-
$in_footer
(логічний) Підключити скрипт до підвалу?
Зазвичай скрипт підключається до <head> документа, якщо вказати true, то скрипт буде підключений перед тегом </body> , точніше там де викликається тег шаблону wp_footer() .
Якщо через залежність від інших скриптів немає можливості підключити поточний скрипт у підвалі, то ця зміна буде проігнарована.
Для зрозумілого читання коду замість true можна вказати будь-який рядок, наприклад ‘in_footer’.
Типово: false
Приклади
#1 Завантажуємо базовий скрипт WordPress із нестандартної адреси.
Допустимо, ви хочете замість бібліотеки jQuery зі складу WordPress підключити її CDN-копію. Додати цей код до файлу functions.php активної теми:
add_action( 'wp_enqueue_scripts', 'my_scripts_method', 11); function my_scripts_method() { wp_deregister_script('jquery'); wp_register_script( 'jquery', 'http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'); wp_enqueue_script('jquery'); }
Використовуючи фільтр wp_enqueue_scripts (замість фільтру init, на який посилаються деякі статті на сторонніх сайтах), ми уникаємо реєстрації альтернативної версії jQuery на сторінках адмінки, що, серед іншого, знижує ризик порушення роботи редактора записів.
#2 Динамічне визначення версії файлу
Щоб змінити файл, URL файлу відрізнявся і він завантажився в браузер як новий, а не брався з кешу, можна вказати версію файлу динамічно на основі часу зміни файлу:
add_action('wp_enqueue_scripts', 'my_scripts_method'); function my_scripts_method() { wp_enqueue_script('custom-script', get_template_directory_uri() . '/js/custom_script.js', array('jquery'), filemtime( get_theme_file_path('js/custom_script.js') ) ); }
Продуктивність filemtime() дуже висока – на SSD диску 0,5 с на 50к ітерацій – це дуже швидко!
#3 Завантажуємо штатний скрипт scriptaculous.
// На зовнішній частині сайту (у темі оформлення) add_action( 'wp_enqueue_scripts', 'my_scripts_method' ); function my_scripts_method() { wp_enqueue_script('scriptaculous'); }
#4 Реєструємо та підключаємо свій скрипт, що залежить від jQuery
Зареєструємо та додамо новий скрипт, який залежить від jquery (це також викликає завантаження jquery на сторінці):
add_action( 'wp_enqueue_scripts', 'my_scripts_method' ); function my_scripts_method() { $script_url = plugins_url( '/js/newscript.js', __FILE__ ); wp_enqueue_script('custom-script', $script_url, array('jquery') ); }
#5 Підвантажуємо скрипт тільки для потрібних типів сторінок
Допустимо нам потрібно використовувати умовні теги, щоб підвантажити свій скрипт scriptaculous. Тоді ми можемо підключитися на хук wp , в момент його спрацьовування ми вже можемо використовувати умовні теги, тому через нього ми можемо визначити для яких типів сторінок підключити скрипт, а для яких немає:
add_action('wp', 'add_my_script_where_it_necessery'); function add_my_script_where_it_necessery(){ if( is_single() ) add_action( 'wp_enqueue_scripts', 'my_scripts_method' ); } function my_scripts_method() { $script_url = plugins_url( '/js/newscript.js', __FILE__ ); wp_enqueue_script('newscript', $script_url, array('scriptaculous')); }
#6 Завантажуємо в темі скрипт, який залежить від скрипту WordPress
Часто потрібно, щоб перед JavaScript-файлами, що постачаються з темою оформлення, був завантажений інший JavaScript-файл. WordPress надає API, що дозволяє під час реєстрації скрипта вказати його залежності. Наприклад, тема з наведеним нижче кодом вимагає, щоб перед скриптом custom_script.js була завантажена бібліотека jQuery:
add_action('wp_enqueue_scripts', 'my_scripts_method'); function my_scripts_method() { wp_enqueue_script('custom-script', get_template_directory_uri() . '/js/custom_script.js', array('jquery') ); }
#7 Завантажуємо скрипти плагіна тільки на його сторінках
add_action( 'admin_menu', 'my_plugin_admin_menu'); function my_plugin_admin_menu() { // Реєструємо сторінку плагіна $page = add_submenu_page( 'edit.php', // Батьківська сторінка меню __( 'Мій плагін', 'myPlugin' ), // Назва пункту меню __( 'Мій плагін', 'myPlugin' ), // Заголовок сторінки 'manage_options' // Можливість, що визначає рівень доступу до пункту 'my_plugin-options', // Ярлик (частина адреси) сторінки плагіна 'my_plugin_manage_menu' // Функція, яка виводить сторінку ); // Використовуємо зареєстровану сторінку для завантаження скрипту add_action( 'load-' . $page, 'my_plugin_admin_scripts' ); } ## Ця функція буде викликана тільки на сторінці плагіна, підключаємо скрипт function my_plugin_admin_scripts() { wp_enqueue_script( 'my-plugin-script', plugins_url('/script.js', __FILE__) ); } function my_plugin_manage_menu() { // Виводимо сторінку плагіна }
#8 Як підключити jquery з Google
Читайте в окремій статті .
#9 Видалення версії скрипта або файлу стилів з URL
При реєстрації скрипта йому вказується версія (поточна версія вордпресу, за замовчуванням): /wp-includes/css/dashicons.min.css?ver=4.9 . Таку версію можна вирізати із посилання на скрипт або файл стилів:
Видалення всіх версій у всіх скриптів (і стилів):
// Видаляємо версію скриптів add_filter( 'script_loader_src', '_remove_script_version' ); // Видаляємо версію стилів add_filter( 'style_loader_src', '_remove_script_version' ); function _remove_script_version( $src ){ $parts = explode('?', $src); return $parts[0]; }
Видалення лише версій WordPress:
## видаляє версію WP з відданого URL у скриптів та стилів add_filter( 'script_loader_src', 'hb_remove_wp_version_from_src'); add_filter( 'style_loader_src', 'hb_remove_wp_version_from_src'); function hb_remove_wp_version_from_src( $src ) { Global $wp_version; parse_str (parse_url ($ src, PHP_URL_QUERY), $ query); if ( ! empty($query['ver']) && $query['ver'] === $wp_version ) { $src = remove_query_arg('ver', $src); } return $src; }
Скрипти, що йдуть у комплекті з WP 5.2.2
Назва | ID | Залежність |
---|---|---|
utils | ||
WP Common | common | jquery , hoverIntent , utils |
wp-a11y | jquery | |
Simple AJAX Code-Kit | sack | |
QuickTags | quicktags | |
ColorPicker (deprecated) | colorpicker | prototype |
editor | utils , jquery | |
clipboard.js | clipboard | |
wp-fullscreen-stub | ||
WordPress AJAX Response | wp-ajax-response | jquery |
wp-api-request | jquery | |
wp-pointer | jquery-ui-widget , jquery-ui-position | |
Autosave | autosave | heartbeat |
Heartbeat | heartbeat | jquery , wp-hooks |
wp-auth-check | heartbeat | |
List Manipulation | wp-lists | wp-ajax-response , jquery-color |
prototype | ||
scriptaculous-root | prototype | |
scriptaculous-builder | scriptaculous-root | |
scriptaculous-dragdrop | scriptaculous-builder , scriptaculous-effects | |
scriptaculous-effects | scriptaculous-root | |
scriptaculous-slider | scriptaculous-effects | |
scriptaculous-sound | scriptaculous-root | |
scriptaculous-controls | scriptaculous-root | |
scriptaculous | scriptaculous-dragdrop , scriptaculous-slider , scriptaculous-controls | |
cropper | scriptaculous-dragdrop | |
jQuery | jquery | jquery-core , jquery-migrate |
jquery-core | ||
jquery-migrate | ||
jQuery UI Core | jquery-ui-core | jquery |
jQuery UI Effects | jquery-effects-core | jquery |
jQuery UI Effects – Blind | jquery-effects-blind | jquery-effects-core |
jQuery UI Effects – Bounce | jquery-effects-bounce | jquery-effects-core |
jQuery UI Effects – Clip | jquery-effects-clip | jquery-effects-core |
jQuery UI Effects – Drop | jquery-effects-drop | jquery-effects-core |
jQuery UI Effects – Explode | jquery-effects-explode | jquery-effects-core |
jQuery UI Effects – Fade | jquery-effects-fade | jquery-effects-core |
jQuery UI Effects – Fold | jquery-effects-fold | jquery-effects-core |
jQuery UI Effects – Highlight | jquery-effects-highlight | jquery-effects-core |
jquery-effects-puff | jquery-effects-core , jquery-effects-scale | |
jQuery UI Effects – Pulsate | jquery-effects-pulsate | jquery-effects-core |
jQuery UI Effects – Scale | jquery-effects-scale | jquery-effects-core , jquery-effects-size |
jQuery UI Effects – Shake | jquery-effects-shake | jquery-effects-core |
jquery-effects-size | jquery-effects-core | |
jQuery UI Effects – Slide | jquery-effects-slide | jquery-effects-core |
jQuery UI Effects – Transfer | jquery-effects-transfer | jquery-effects-core |
jQuery UI Accordion | jquery-ui-accordion | jquery-ui-core , jquery-ui-widget |
jQuery UI Autocomplete | jquery-ui-autocomplete | jquery-ui-menu , wp-a11y |
jQuery UI Button | jquery-ui-button | jquery-ui-core , jquery-ui-widget |
jQuery UI Datepicker | jquery-ui-datepicker | jquery-ui-core |
jQuery UI Dialog | jquery-ui-dialog | jquery-ui-resizable , jquery-ui-draggable , jquery-ui-button , jquery-ui-position |
jQuery UI Draggable | jquery-ui-draggable | jquery-ui-mouse |
jQuery UI Droppable | jquery-ui-droppable | jquery-ui-draggable |
jQuery UI Menu | jquery-ui-menu | jquery-ui-core , jquery-ui-widget , jquery-ui-position |
jQuery UI Mouse | jquery-ui-mouse | jquery-ui-core , jquery-ui-widget |
jQuery UI Position | jquery-ui-position | jquery |
jQuery UI Progressbar | jquery-ui-progressbar | jquery-ui-core , jquery-ui-widget |
jQuery UI Resizable | jquery-ui-resizable | jquery-ui-mouse |
jQuery UI Selectable | jquery-ui-selectable | jquery-ui-mouse |
jQuery UI Selectmenu | jquery-ui-selectmenu | jquery-ui-menu |
jQuery UI Slider | jquery-ui-slider | jquery-ui-mouse |
jQuery UI Sortable | jquery-ui-sortable | jquery-ui-mouse |
jQuery UI Spinner | jquery-ui-spinner | jquery-ui-button |
jQuery UI Tabs | jquery-ui-tabs | jquery-ui-core , jquery-ui-widget |
jQuery UI Tooltips | jquery-ui-tooltip | jquery-ui-core , jquery-ui-widget , jquery-ui-position |
jQuery UI Widget | jquery-ui-widget | jquery |
jQuery Form | jquery-form | jquery |
jQuery Color | jquery-color | jquery |
jQuery Schedule | schedule | jquery |
jquery-query | jquery | |
jquery-serialize-object | jquery | |
jQuery Hotkeys | jquery-hotkeys | jquery |
jquery-table-hotkeys | jquery , jquery-hotkeys | |
jquery-touch-punch | jquery-ui-widget , jquery-ui-mouse | |
jQuery Suggest | suggest | jquery |
imagesloaded | ||
Masonry (native Javascript) | masonry | imagesloaded |
jQuery Masonry | jquery-masonry | jquery , masonry |
ThickBox | thickbox | jquery |
Jcrop | jcrop | jquery |
SWFObject | swfobject | |
moxiejs | ||
Plupload Core | plupload | moxiejs |
Plupload All Runtimes | plupload-all | plupload |
Plupload HTML5 | plupload-html5 | plupload |
Plupload Flash | plupload-flash | plupload |
Plupload Silverlight | plupload-silverlight | plupload |
Plupload HTML4 | plupload-html4 | plupload |
plupload-handlers | plupload , jquery | |
wp-plupload | plupload , jquery , json2 , media-models | |
SWFUpload | swfupload | |
swfupload-all | swfupload | |
SWFUpload Handlers | swfupload-handlers | swfupload-all , jquery |
Threaded Comments | comment-reply | |
JSON for JS | json2 | |
Underscore js | underscore | |
Backbone js | backbone | underscore , jquery |
wp-util | underscore , jquery | |
wp-sanitize | jquery | |
wp-backbone | backbone , wp-util | |
revisions | wp-backbone , jquery-ui-slider , hoverIntent | |
imgareaselect | jquery | |
mediaelement | jquery , mediaelement-core , mediaelement-migrate | |
mediaelement-core | ||
mediaelement-migrate | ||
mediaelement-vimeo | mediaelement | |
MediaElement.js (WP 3.6+) | wp-mediaelement | mediaelement |
wp-codemirror | ||
csslint | ||
esprima | ||
jshint | esprima | |
jsonlint | ||
htmlhint | ||
htmlhint-kses | htmlhint | |
code-editor | jquery , wp-codemirror , underscore | |
wp-theme-plugin-editor | wp-util , wp-sanitize , jquery , jquery-ui-core , wp-a11y , underscore | |
wp-playlist | wp-util , backbone , mediaelement | |
zxcvbn-async | ||
Password Strength Meter | password-strength-meter | jquery , zxcvbn-async |
user-profile | jquery , password-strength-meter , wp-util | |
language-chooser | jquery | |
user-suggest | jquery-ui-autocomplete | |
admin-bar | ||
wplink | jquery , wp-a11y | |
wpdialogs | jquery-ui-dialog | |
Word Count | word-count | |
Media Upload | media-upload | thickbox , shortcode |
jQuery HoverIntent | hoverIntent | jquery |
customize-base | jquery , json2 , underscore | |
customize-loader | customize-base | |
customize-preview | wp-a11y , customize-base | |
customize-models | underscore , backbone | |
customize-views | jquery , underscore , imgareaselect , customize-models , media-editor , media-views | |
customize-controls | customize-base , wp-a11y , wp-util , jquery-ui-core | |
customize-selective-refresh | jquery , wp-util , customize-preview | |
customize-widgets | jquery , jquery-ui-sortable , jquery-ui-droppable , wp-backbone , customize-controls | |
customize-preview-widgets | jquery , wp-util , customize-preview , customize-selective-refresh | |
customize-nav-menus | jquery , wp-backbone , customize-controls , accordion , nav-menu | |
customize-preview-nav-menus | jquery , wp-util , customize-preview , customize-selective-refresh | |
wp-custom-header | wp-a11y | |
accordion | jquery | |
shortcode | underscore | |
media-models | wp-backbone | |
wp-embed | ||
media-views | utils , media-models , wp-plupload , jquery-ui-sortable , wp-mediaelement , wp-api-request | |
media-editor | shortcode , media-views | |
media-audiovideo | media-editor | |
mce-view | shortcode , jquery , media-views , media-audiovideo | |
wp-api | jquery , backbone , underscore , wp-api-request | |
react | wp-polyfill | |
react-dom | react | |
moment | ||
lodash | ||
wp-polyfill-fetch | ||
wp-polyfill-formdata | ||
wp-polyfill-node-contains | ||
wp-polyfill-element-closest | ||
wp-polyfill | ||
wp-tinymce-root | ||
wp-tinymce | wp-tinymce-root | |
wp-tinymce-lists | wp-tinymce | |
wp-api-fetch | wp-polyfill , wp-i18n , wp-url , wp-hooks | |
wp-annotations | wp-data , wp-hooks , wp-i18n , wp-polyfill , wp-rich-text | |
wp-autop | wp-polyfill | |
wp-blob | wp-polyfill | |
wp-blocks | wp-autop , wp-blob , wp-block-serialization-default-parser , wp-data , wp-dom , wp-element , wp-hooks , wp-html-entities , wp-i18n , wp-is-shallow- equal , wp-polyfill , wp-shortcode , lodash | |
wp-block-library | editor , lodash , wp-api-fetch , wp-autop , wp-blob , wp-block-editor , wp-blocks , wp-components , wp-compose , wp-core-data , wp-data , wp-date , wp-editor , wp-element , wp-html-entities , wp-i18n , wp-keycodes , wp-polyfill , wp-url , wp-viewport , wp-rich-text | |
wp-block-serialization-default-parser | ||
wp-block-editor | lodash , wp-a11y , wp-blob , wp-blocks , wp-components , wp-compose , wp-core-data , wp-data , wp-dom , wp-element , wp-hooks , wp-html-entities , wp-i18n , wp-is-shallow-equal , wp-keycodes , wp-rich-text , wp-token-list , wp-url , wp-viewport , wp-wordcount | |
wp-components | lodash , moment , wp-a11y , wp-api-fetch , wp-compose , wp-dom , wp-element , wp-hooks , wp-html-entities , wp-i18n , wp-is-shallow-equal , wp- keycodes , wp-polyfill , wp-rich-text , wp-url | |
wp-compose | lodash , wp-element , wp-is-shallow-equal , wp-polyfill | |
wp-core-data | lodash , wp-api-fetch , wp-data , wp-deprecated , wp-polyfill , wp-url | |
wp-data | lodash , wp-compose , wp-element , wp-is-shallow-equal , wp-polyfill , wp-priority-queue , wp-redux-routine | |
wp-date | moment , wp-polyfill | |
wp-deprecated | wp-polyfill , wp-hooks | |
wp-dom | lodash , wp-polyfill | |
wp-dom-ready | wp-polyfill | |
wp-edit-post | jquery , lodash , postbox , media-models , media-views , wp-a11y , wp-api-fetch , wp-block-editor , wp-block-library , wp-blocks , wp-components , wp-compose , wp- core-data , wp-data , wp-dom-ready , wp-editor , wp-element , wp-embed , wp-i18n , wp-keycodes , wp-notices , wp-nux , wp-plugins, wp-polyfill , wp-url , wp-viewport | |
wp-editor | lodash , wp-api-fetch , wp-blob , wp-block-editor , wp-blocks , wp-components , wp-compose , wp-core-data , wp-data , wp-date , wp-deprecated , wp- element , wp-hooks , wp-html-entities , wp-i18n , wp-keycodes , wp-notices , wp-nux , wp-polyfill , wp-url , wp-viewport , wp-wordcount | |
wp-element | wp-polyfill , react , react-dom , lodash , wp-escape-html | |
wp-escape-html | wp-polyfill | |
wp-format-library | wp-block-editor , wp-components , wp-editor , wp-element , wp-i18n , wp-keycodes , wp-polyfill , wp-rich-text , wp-url | |
wp-hooks | wp-polyfill | |
wp-html-entities | wp-polyfill | |
wp-i18n | wp-polyfill | |
wp-is-shallow-equal | wp-polyfill | |
wp-keycodes | lodash , wp-polyfill , wp-i18n | |
wp-list-reusable-blocks | lodash , wp-api-fetch , wp-components , wp-compose , wp-element , wp-i18n , wp-polyfill | |
wp-notices | lodash , wp-a11y , wp-data , wp-polyfill | |
wp-nux | wp-element , lodash , wp-components , wp-compose , wp-data , wp-i18n , wp-polyfill , lodash | |
wp-plugins | lodash , wp-compose , wp-element , wp-hooks , wp-polyfill | |
wp-priority-queue | ||
wp-redux-routine | wp-polyfill | |
wp-rich-text | lodash , wp-data , wp-escape-html , wp-polyfill | |
wp-shortcode | wp-polyfill , lodash | |
wp-token-list | lodash , wp-polyfill | |
wp-url | wp-polyfill | |
wp-viewport | wp-polyfill , wp-element , wp-data , wp-compose , lodash | |
wp-wordcount | wp-polyfill |
Список отриманий із глобальної змінної $GLOBALS['wp_scripts']
. Зареєстровані скрипти можуть змінюватись в залежності від сторінки, на якій ви знаходитесь. В адмінці список буде більшим.
Докладніше дивіться у коді функції wp_default_scripts()
нотатки
- Дивіться: WP_Dependencies::add()
- Дивіться: WP_Dependencies::add_data()
- Дивіться: WP_Dependencies::enqueue()
список змін
З версії 2.1.0 | Введено. |
wp enqueue script WP 6.0.2
function wp_enqueue_script( $handle, $src = '', $deps = array(), $ver = false, $in_footer = false ) { _wp_scripts_maybe_doing_it_wrong( __FUNCTION__, $handle ); $wp_scripts = wp_scripts(); if ( $src | | $ in_footer ) { $_handle = explode('?', $handle); if ($ src) { $wp_scripts->add( $_handle[0], $src, $deps, $ver); } if ($in_footer) { $wp_scripts->add_data( $_handle[0], 'group', 1 ); } } $wp_scripts->enqueue($handle); }