Как обойти скрипт ракеты CloudFlare, если для добавления скриптов используется wp_enqueue_script?

Я только что погуглил, но не получил никакой конкретной информации. У меня есть такой код на шаблоне PHP для WordPress:

<?php wp_enqueue_script( 'jquery-carousel', get_template_directory_uri().'/js/jquery.carouFredSel-6.2.1-packed.js', array('jquery'),'',true); ?>

И я хочу добавить CloudFlare игнорировать для Rocketloader data-cfasync="false" непосредственно перед атрибутом ‘src’ в jquery.carouFredSel-6.2.1-pack.js

Что я могу сделать?

С уважением

Редактировать:

Большое спасибо @Mary за код. Таким образом, решение для этого состоит в том, чтобы добавить эту функцию в functions.php:

function add_data_attribute( $tag, $handle, $src ) {
if ( 'jquery-carousel' !== $handle )
return $tag;

return str_replace( ' src', ' data-cfasync="false" src', $tag );
}

add_filter( 'script_loader_tag', 'add_data_attribute', 10, 3 );

Если в эту функцию необходимо добавить больше тегов, таких как ‘jquery-carousel1’, ‘jquery-carousel2’, код выглядит следующим образом:

function add_data_attribute( $tag, $handle, $src ) {
if( ! in_array( $handle, array( 'jquery-carousel', 'jquery-carousel1', 'jquery-carousel2' ) ) )
return $tag;

return str_replace( 'src', 'data-cfasync="false" src', $tag );
}

add_filter( 'script_loader_tag', 'add_data_attribute', 10, 3 );

1

Решение

Вы можете попробовать фильтрацию с script_loader_tag.

function add_data_attribute( $tag, $handle, $src ) {
if ( 'jquery-carousel' !== $handle )
return $tag;

return str_replace( ' src', ' data-cfasync="false" src', $tag );
}

add_filter( 'script_loader_tag', 'add_data_attribute', 10, 3 );

Таким образом, вы можете выбрать целевой скрипт.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]