one4zero
@one4zero

Как сделать загрузку jquery асинхронной?

Как сделать асинхронной загрузку js jquery в WordPress?

0ce5303050de4506a312f344f8464ca7.jpg
  • Вопрос задан
  • 1393 просмотра
Пригласить эксперта
Ответы на вопрос 3
profesor08
@profesor08 Куратор тега JavaScript
Установите тегу script атрибут async.

Тут подробнее: https://learn.javascript.ru/external-script
Ответ написан
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
Для одного скрипта
function add_async_attribute( $tag, $handle ) {

    if ( 'my-js-handle' !== $handle ) {
        return $tag;
    }

    return str_replace( ' src', ' async="async" src', $tag );

}
add_filter('script_loader_tag', 'add_async_attribute', 10, 2);

Для многих скриптов
function add_async_attribute( $tag, $handle ) {

    // handles скриптов, которым нужен атрибут async
    $scripts_to_async = array(
        'my-js-handle', 
        'another-handle',
    );
   
   foreach( $scripts_to_async as $async_script ) {

      if ( $async_script === $handle ) {
         return str_replace( ' src', ' async="async" src', $tag );
      }

   }

   return $tag;

}
add_filter( 'script_loader_tag', 'add_async_attribute', 10, 2 );
Ответ написан
one4zero
@one4zero Автор вопроса
---------------------------------------------
Помогло следующее.
В /wp-includes/class.wp-scripts.php
к коду
$tag = "{$cond_before}{$before_handle}<script type='text/javascript' src='$src'></script>\n{$after_handle}{$cond_after}";
добавил async
$tag = "{$cond_before}{$before_handle}<script type='text/javascript' async src='$src'></script>\n{$after_handle}{$cond_after}";


нашел на moneyroute
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы