CloudFlare的Rocket Loader+WordPress->忽略脚本?

时间:2013-03-10 作者:Allen Payne

我正在努力使Cloudflare的火箭装载机在我的WP站点上工作。除了WP可视化编辑器外,其他一切都正常工作。我遵循了这里的建议,但不起作用:

How do I add custom attributes to javascript tags in Wordpress?

Cloudflare表示,为了使Rocket Loader忽略javascript文件,我需要在脚本之前添加data cfasync=“false”标记:

<script data-cfasync="false" src="/javascript.js"></script>    

https://support.cloudflare.com/entries/22063443--How-can-I-have-Rocket-Loader-ignore-my-script-s-in-Automatic-Mode-

Rocket loader不会忽略我的JS文件。

这是我的代码:

function rocket_loader_attributes( $url )
{
$ignore = array (

\'http://www.mysite.com/wp-includes/js/tinymce/tiny_mce.js?ver=349-21274\',
\'http://www.mysite.com/wp-admin/js/editor.js?ver=3.4.2\'

);
if ( in_array( $url, $ignore ) )
{ // this will be ignored
return "$url\' data-cfasync=\'false";
}

return $url;
}
add_filter( \'clean_url\', \'rocket_loader_attributes\', 11, 1 );
我的代码有什么问题?

我目前正在自动模式下使用火箭装载机。

有人能帮忙吗?

@托肖,如果你看到了,也许你可以给我指出正确的方向。

非常感谢。

2 个回复
SO网友:nanastopoulos

请注意,在示例中,标记没有type=\'text/javascript\' 属性由于某种原因,火箭装载机需要data-cfasync=\'false\' 在没有type=\'text/javascript\'... 虫子?

您的代码确实添加了data-cfasync=\'false\' 属性,但不重写添加type=\'text/javascript\' 属性,这使得Rocket Loader不会“忽略”您的脚本。

由于relevant code 不支持筛选器。。。

SO网友:9ete

使用以下函数可以获得所需的结果(将脚本句柄替换为脚本句柄):

add_filter( \'script_loader_tag\', function ( $tag, $handle ) {

    if ( \'script-handle\' !== $handle )
        return $tag;

    return str_replace( "type=\'text/javascript\' src", \' data-cfasync="false" src\', $tag     );
}, 10, 2 );
上面的WordPress过滤器通过其句柄获取脚本,并允许您添加/编辑脚本属性。

结束

相关推荐

一群使用相同Memcached的无关WordPress无法正确存储他们的数据

在开始之前,我必须警告读者:小心d!在single web server (CentOS 6.3)使用php-5.3.3,我有unrelated wordpress站点(3.5),每个站点都有自己的DB(Mysql5.1),因此table\\u前缀是相同的(“wp\\u”)。为了加快wordpress的速度,我想用APC获取代码,用memcache后端获取数据,所以在我的web服务器上,我编译了;安装libmemcached-1.0.15和(使用“pecl安装”)php-pecl-memcached 2.