WordPress как на ладони
wordpress jino

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 - только для IE
  • IE 6 - только для IE 6
  • IE 7 - только для IE 7
  • IE 8 - только для IE 8
  • IE 9 - только для IE 9
  • gt IE 6 - только для IE больше 6
  • lt IE 9 - только для IE меньше 9
  • gte IE 7 - только для IE больше или равно 7
  • lte 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'); // async
	wp_script_add_data('pngfix', 'conditional', 'lt IE 9');
}

В результате получим в head документа

<!--[if lt IE 9]>
<script type='text/javascript' src='http://site.ru/wp-content/themes/theme/js/pngfix.js?ver=4.5.2'></script>
<![endif]-->

Код wp script add data: wp-includes/functions.wp-scripts.php WP 4.9

<?php
function wp_script_add_data( $handle, $key, $value ){
	return wp_scripts()->add_data( $handle, $key, $value );
}

Cвязанные функции

Из метки: script

Еще из раздела: Регистрация script и style

wp_script_add_data 2 комментария
  • Илья

    А есть ли условные комментарии для браузера сафари?
    Я хочу сделать так, что когда пользователь заходит на сайт через Crome, Opera, FierFox, то грузиться скрипт_1, а если ч/з Safari, то грузится скрипт_2.
    Как такое сделать?

    1
    • Насколько мне известно - нету. Но можно кое как определять браузер клиента на сервере:

      global $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;
      
      if($is_lynx) echo 'lynx';
      elseif($is_gecko) echo 'gecko';
      elseif($is_opera) echo 'opera';
      elseif($is_NS4) echo 'ns4';
      elseif($is_safari) echo 'safari';
      elseif($is_chrome) echo 'chrome';
      elseif($is_IE) echo 'ie';
      elseif($is_iphone) echo 'iphone';
      else echo 'unknown';

      Вместо вывода названий браузеров подставить подключение скрипта.

      1
      Ответить2 месяца назад #

Здравствуйте, !

Ваш комментарий