wp_script_add_data()
Додає дані до підключених за допомогою wp_enqueue_script() скриптів. Наприклад, коли потрібно виводити скрипт тільки для IE 6 або lt IE 9 (менше IE 9).
Працює тільки якщо скрипт вже був зареєстрований або доданий до черги на висновок – дивіться wp_enqueue_script() .
Поки що можна вказати лише додаткові дані для підключення скрипта для вказаних браузерів. Тобто. $key може дорівнювати тільки conditional
, а $value рядку “IE 6”, “lte IE 7” і т.д.
Для стилів є аналогічна функція: wp_style_add_data()
Використовуйте wp_localize_script() , коли потрібно додати додаткові дані (JS об’єкт з даними) перед скриптом, що підключається.
Хуків немає.
Повертає
true|false
. True, якщо дані додані. false при невдачі.
Використання
wp_script_add_data($handle, $key, $value);
-
$handle
(рядок) (обов’язковий) -
ID, назва скрипта, до якого потрібно додати дані. Тут потрібно вказувати перший параметр
wp_enqueue_script() або
wp_register_script() . -
$key
(рядок) (обов’язковий) Назва типу даних, що додаються. На основі цього параметра буде оброблятись значення вказане в $value . Може бути:
conditional
data
– використовується в wp_localize_script()group
– у якій групі виводити (у шапці чи у підвалі)
-
$value
(змішаний) (обов’язковий) Додаткові дані виведення скрипту на екран.
Варіанти значень при$key = 'conditional'
:IE
– Тільки для IEIE 6
– тільки для IE 6IE 7
– Тільки для IE 7IE 8
– Тільки для IE 8IE 9
– Тільки для IE 9gt IE 6
– тільки для IE більше 6lt IE 9
– тільки для IE менше 9gte IE 7
– тільки для IE більше або дорівнює 7lte IE 7
– тільки для IE менше або дорівнює 7!IE
– для всіх браузерів, крім IE версій 5-9
Приклади
#1 Підключимо скрипт тільки для IE менше 9 версії
Цей приклад показує, як додати умову для підключення зареєстрованого скрипта. Наприклад додамо умову <!--[if lt IE 9]>...<![endif]-->
– для IE менше 9.
add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts'); function my_enqueue_scripts() { // Підключаємо спеціальні скрипти лише для Internet Explorer 6 wp_enqueue_script('pngfix', get_template_directory_uri() .'js/pngfix.js'); wp_script_add_data('pngfix', 'conditional', 'lt IE 9'); }
В результаті отримаємо у head документа
<!--[if lt IE 9]> <script type='text/javascript' src='http://example.com/wp-content/themes/theme/js/pngfix.js?ver=4.5.2'></script> <![endif]-->
#2 Додавання атрибуту async до зареєстрованого скрипту
add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts'); function my_enqueue_scripts() { wp_enqueue_script( 'app', get_template_directory_uri() . 'js/app.js' ); // Додаємо async до зареєстрованого скрипту. wp_script_add_data( 'app', 'async', true ); } add_filter( 'script_loader_tag', 'my_script_loader_tag', 10, 2); function my_script_loader_tag( $tag, $handle ) { // Додаємо атрибут async до зареєстрованого скрипту. if ( wp_scripts()->get_data( $handle, 'async' ) ) { $tag = str_replace( '></', 'async></', $tag ); } return $tag; }
В результаті отримаємо у head документа
<script type='text/javascript' src='http://example.com/wp-content/themes/theme/js/app.js?ver=4.5.2' async></script>
#3 Додавання атрибута defer до зареєстрованого скрипту
add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts'); add_filter( 'script_loader_tag', 'filter_script_loader_tag', 10, 2); function my_enqueue_scripts() { wp_enqueue_script( 'app', get_template_directory_uri() . 'js/app.js' ); // Додаємо defer до зареєстрованого скрипту. wp_script_add_data('app', 'defer', true); } function filter_script_loader_tag( $tag, $handle ) { foreach ( [ 'async', 'defer' ] as $attr ) { if ( ! wp_scripts()->get_data( $handle, $attr ) ) { continue; } // Prevent adding attribute when already added in #12009. if ( ! preg_match( ":s$attr(=|>|s):", $tag ) ) { $tag = preg_replace(':(?=></script>):', "$attr", $tag, 1); } // Тільки allow async or defer, не both. break; } return $tag; }
В результаті отримаємо у head документа
<script type='text/javascript' src='http://example.com/wp-content/themes/theme/js/app.js?ver=4.5.2' defer></script>
нотатки
- Дивіться: WP_Dependencies::add_data()
список змін
З версії 4.2.0 | Введено. |
Код wp_script_add_data() wp script add data WP 6.0.2
function wp_script_add_data( $handle, $key, $value ) { return wp_scripts()->add_data( $handle, $key, $value ); }