用于WordPress的异步Java脚本和CSS

时间:2016-04-06 作者:tosananuco

我正在尝试在没有插件的情况下使JS和CSS异步(我知道这是可能的,不需要太多的编码)。

由于我不太懂php,我希望你能在这里帮我一点忙。

我找到了这段代码来处理这类事情,但我真的不知道如何使用它。

function add_async_attribute($tag, $handle) {
   $scripts_to_async = array(\'my-js-handle\', \'another-handle\');
   foreach($scripts_to_async as $async_script) {
      if ($async_script !== $handle) return $tag;
      return str_replace(\' src\', \' async="async" src\', $tag);
   }
   return $tag;
}
add_filter(\'script_loader_tag\', \'add_async_attribute\', 10, 2);
我应该准确地放置什么而不是my-js-handleanother-handle 如果JQuery文件放在此处:wordpress/wp-includes/js/jquery/jquery.js?ver=1.11.3 ?

另外,如果我要放大数组,请这样说:

array(\'my-js-handle\', \'another-handle\', \'one-more\');
我是否需要改变一些东西,请这样说(在add_filter): 10, 2); ?

至于css异步化。。。仅仅扩大这个数组并添加我的css地址就足够了吗?

1 个回复
最合适的回答,由SO网友:majick 整理而成

您可以使用handle ,即wp_enqueue_script WordPress中用于所有脚本的函数。。。(如果以其他方式加载,则应使用此函数。)

jQuery的句柄是<罢工>jquery实际jquery-core 现在但排队的每个脚本都有自己的句柄。有点像帖子的“鼻涕虫”。

您可以向该数组添加尽可能多的句柄,而无需更改过滤器参数。(The10, 2 部分是筛选器运行优先级和分别传递给筛选器函数的参数数。)

但是script_loader_tag 过滤排队的脚本,而不是样式表,因此这对CSS文件也适用。

EDIT我认为循环不会按原样工作,因为它会在第一次失败时返回,因此不会检查所有句柄。改用:

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

相关推荐

如何在Functions.php中链接style.css

我是WordPress的新手;我刚开始学习WordPress。我想把风格联系起来。函数中的css。php,但我无法解决这里可能存在的问题。谁能给我指出正确的方向吗?指数php<?php get_header(); ?> <?php if ( have_posts() ) { while ( have_posts() ) { the_post();