wp_script_add_data() WP 4.2.0
Добавляет данные к подключенным на странице скриптам с помощью wp_enqueue_script(). Используйте когда, например нужно выводить скрипт только для «IE 6» или «lt IE 9» (меньше IE 9).
Работает только если скрипт уже был зарегистрирован или добавлен в очередь на вывод - см. wp_register_script() или wp_enqueue_script().
Пока можно указать только дополнительные данные для подключения скрипта только для указанных браузеров. Т.е. $key может быть равен только conditional
, а $value строке «IE 6», «lte IE 7» и т.д.
Для стилей есть аналогичная функция: wp_style_add_data()
Хуков нет.
Возвращает
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' ); function my_enqueue_scripts() { wp_enqueue_script( 'app', get_template_directory_uri() . 'js/app.js' ); // Добавляем defer к зарегистрированному скрипту. wp_script_add_data( 'app', 'defer', true ); } add_filter( 'script_loader_tag', 'my_script_loader_tag', 10, 2 ); function my_script_loader_tag( $tag, $handle ) { // Добавляем атрибут defer к зарегистрированному скрипту. if ( wp_scripts()->get_data( $handle, 'defer' ) ) { $tag = str_replace( '></', ' defer></', $tag ); } 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 5.6
function wp_script_add_data( $handle, $key, $value ) {
return wp_scripts()->add_data( $handle, $key, $value );
}