首页 > 解决方案 > WordPress延迟脚本插件不加载网站

问题描述

我想加快我的 wordpress 网站的加载速度。我编写了一个简单的插件,它将 defer 属性添加到我安装的自定义主题使用的一些脚本中。我面临的问题是该站点被锁定到预加载器屏幕,并且 chrome 开发控制台中没有错误,也没有显示 xdebug 错误。我不知道,也许我做错了什么属性?所有脚本都是主题的依赖项,并且使用不属于列表的 jQuery。任何帮助将不胜感激。

class WP_scriptDefer {

  private $scripts = [
    'bootstrap.min.js',
    'lazyload.min.js',
    'viewportchecker.min.js',
    'universal-parallax.min.js',
  ];

  public function __construct()
  {
    $this->init();
  }

  public function init()
  {
    add_filter( 'script_loader_tag', [$this, 'deferScripts'], 10 );
  }

  public function deferScripts()
  {
    foreach( $this->scripts as $script ){
      if( true == strpos($tag, $script) ){
          return str_replace('src', 'defer="defer" src', $tag);
      }
    }
  }

}

new WP_scriptDefer;

标签: phpwordpress

解决方案


我编辑你的课程,请检查:

class WP_scriptDefer
{

    private $scripts = [
            'bootstrap.min.js',
            'lazyload.min.js',
            'viewportchecker.min.js',
            'universal-parallax.min.js',
        ];

    public function __construct()
    {
        $this->init();
    }

    public function init()
    {
        add_filter('script_loader_tag', [ $this, 'deferScripts'], 10, 3);
    }

    public function deferScripts( $tag, $handle, $src  )
    {
        foreach( $this->scripts as $script ){
            if( true === strpos($tag, $script) ){
                 return str_replace('src', 'defer="defer" src', $tag);
            }
        }

        return $tag;
    }

}

new WP_scriptDefer;

推荐阅读