【发布时间】:2019-11-27 17:19:11
【问题描述】:
我想加快我的 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;
【问题讨论】:
-
$tag 可能有问题
-
@Dmitry 你能给我解释一下吗?我已经举了一个例子,在
function.php文件中添加了一个使用这个的网站的属性,并且我已经针对我的插件的 OOP 对其进行了调整,所以我不知道如何从 wordpress 中获取 tag 变量并且在插件中可用 -
把
define( 'WP_DEBUG', TRUE);添加到你的wp-config.php,看看有没有错误。 -
我试过了,但没有记录错误并且插件被正确激活。也许我还需要加载主 js 文件作为延迟脚本?