WordPress-在wp_enqueue_style CSS文件中添加同步延迟标签

时间:2018-12-21 09:56:11

标签: wordpress

我需要在样式表CSS文件中添加通过使用wp_enqueue_style包括的 sync defer 属性。

我的代码在下面。

function my_scripts() {
  wp_enqueue_style('bootstrap', get_template_directory_uri() . '/css/bootstrap.css', array(), '4.4.2');
  wp_enqueue_style('my-style', get_stylesheet_uri());
  wp_enqueue_style('about-page', get_template_directory_uri() . '/css/about-styles.css', array(), '4.4.3');
  wp_enqueue_script('bootstrap-min', get_template_directory_uri() . '/js/bootstrap.min.js', array(), '20151112', true);
  wp_enqueue_script('jquery-scrollto', get_template_directory_uri() . '/js/jquery-scrollto.js', array(), '20112', true);
  wp_enqueue_style('details-pages', get_template_directory_uri() . '/css/details-pages.css', array(), '4.4.3');
  wp_enqueue_style('owl-carousel-css', get_template_directory_uri() . '/css/owl/owl.carousel.css', array(), '4.4.2');
  wp_enqueue_script('owl-carousel-js', get_template_directory_uri() . '/css/owl/owl.carousel.min.js', array(), '202', true);
  wp_enqueue_script('scripts-js', get_template_directory_uri() . '/js/scripts.js', array(), '20151112', true);
}

add_action('wp_enqueue_scripts', 'my_scripts');

现在,我想在不同的CSS样式表中添加sync或defer属性。因此,请帮助我如何添加同步或延迟属性。我只想在CSS文件中添加属性,而不能在JavaScript文件中添加属性。

任何帮助将不胜感激。

谢谢。

2 个答案:

答案 0 :(得分:0)

尝试此代码

function add_custom_attr( $tag, $handle, $src ) {
    $scriptArr = array('bootstrap','my-style','about-page','bootstrap-min','jquery-scrollto','details-pages','owl-carousel-css','owl-carousel-js','scripts-js');

    if (in_array($handle, $scriptArr)) {
    $tag = str_replace( 'src=', 'sync="false" src=', $tag );
    }
    return $tag;
}
add_filter( 'script_loader_tag', 'add_custom_attr', 10, 3 );

答案 1 :(得分:0)

另一种使用不同过滤器的解决方案,可以用于指定特定的脚本句柄:

 function frontend_scripts(){
    wp_enqueue_script( 'my-unique-script-handle', 'path/to/my/script.js' );
 }
 add_action( 'wp_enqueue_scripts', 'frontend_script' );

 function make_script_async( $tag, $handle, $src ){
    if ( 'my-unique-script-handle' != $handle ) {
        return $tag;
    }
   return str_replace( '<script', '<script async', $tag );
 }
 add_filter( 'script_loader_tag', 'make_script_async', 10, 3 );

我希望这可以帮助您解决问题。

谢谢