l10n.js在WordPress 3.1中做什么?以及如何删除它?


8

我刚刚在测试服务器上安装了WP 3.1 Beta 2。我注意到它附带了一个新l10n.js文件,该文件会自动插入标头中。

我做了一些挖掘工作,这与本地化有关。我猜想很多人不使用它,所以我想知道如何删除它?

如果重要的是不要删除它,也请告诉我。

Answers:


12

它包含convertEntities()将HTML实体转换为其实际值的功能(顾名思义)。它主要用于使用来将本地化数据从PHP发送到JS端的脚本wp_localize_script()。只需l10n_print_after在代码库中搜索,就会发现很多内容。

您添加的数据将在wp_localize_script()其转换的脚本之前添加(必须存在,因为在此引用了该数据)。但是,如果使用脚本连接器(因此只有一个请求返回所有使用过的JS文件),则在所有本地化数据之后也将调用该文件-但现在convertEntities()在需要时未定义该文件。因此,此功能会从常规utils.js文件中分离出来,并在顶部添加高优先级。

因此,您不应该删除它:所有使用可翻译字符串的脚本都使用它(即使它们仍然是英语),并且您可能会破坏仍然具有实体的位置。


1
感谢您精心制作!:)虽然还有一些问题。我主要关心的只是在前端为每个用户添加另一个不必要的请求。唯一的JS用户看到的是我自己的simple scripts.jsjquery。我不介意在WP仪表板中显示l10n,但是我正在处理的网站吸引了大量流量,并且我对保持所有最佳状态非常挑剔。有人提到管理栏是原因,但该网站只有少数作者。我不在乎它是否会影响到他们,只是不想让它拖慢网站的其余部分。您建议做什么?
萨哈斯·卡塔

1
因此,即使我有ZERO 文件入队,它也似乎wp_register_script正在触发l10n.js加载.js。我不介意它是否适合那些访问量不高的作者,但即使我不javascript为他们提供服务,也可以将其加载到常规访问者的公共页面上。即使我需要这样的脚本jquery,也不必依赖它utils.js。至少在过去,它从来没有这样做过。
萨哈斯·卡塔

4
if ( !is_admin() ) {
function my_init_method() {
wp_deregister_script( 'l10n' );
}
add_action('init', 'my_init_method'); 
}

使用上面的代码在function.php中注销l10n.js


1

当您加入“评论回复”脚本时,它似乎已包含在内。请注意,您可能要确保仅在可以启用注释的页面上加载“注释回复”(例如,is_singular()在使脚本入队之前进行检查)。


嗯,我认为这与comment-reply脚本无关。我目前还没有将它排入我的测试站点。它出现在网站的所有页面上。我什至切换回WP 3.0.3进行测试,但它消失了。回来,如果我运行新的3.1测试版2
Sahas凯塔

我只在comment-reply运行SVN中继版本WordPress的两个测试平台上排队的页面上看到它。
mtekk 2010年

1

我在安装中发现此脚本是在新的管理栏旁边加载的,摆脱了管理栏,对我来说摆脱了l10n.js(但我认为Jan的回答更符合回答“为什么”)。

拆卸杆很容易..

remove_action( 'init', 'wp_admin_bar_init' );

这实际上并没有解决问题(其他答案也证明了这一点),但是如果有人要删除该可怕的酒吧,以上就是您的处理方法。


嗯,我代码中的其他内容也正在触发它。我用just创建了一个超级基本主题header/footer/index/sidebar.php,删除动作解决了问题。但是就我的常规主题而言,即使我删除了所有排队,它仍然保持加载状态。除了Google Analytics(分析)之外,我在WP页眉/页脚中还有ZERO javascript,无论如何它都是硬编码到模板中的。
萨哈斯·卡塔

1
启用默认主题后,没有插件(或最少插件),当我删除管理栏时,绝对看不到任何脚本加载到前端。我认为Jan发布了有关何时以及为何调用此脚本的一些重要信息(我只是在谈论删除该脚本,并发布了我认为有效的信息)。
t31os 2010年

好的,这是经过更多试验后发现的结果。我有一些wp_register_script陈述functions.phpl10n.js即使我从不排队任何.js文件,该触发器也会出现。我也禁用了管理栏!
萨哈斯·卡塔

1

如何删除它:

函数kill_l10n(){
    如果(!is_admin())
        wp_deregister_script('l10n');
}
add_action('wp_print_scripts','kill_l10n');

下降的functions.php或什么(插件等)

为我工作。


1

要删除它,请将以下内容添加到主题的functions.php文件中。

wp_deregister_script('l10n');


0

该文件的开发人员来源具有以下描述:

//用于确保L10N字符串中使用的实体正确

并提交注释说:

将l10n helper函数移动到一个单独的js文件中,这样我们就始终可以首先输出它。

我还没有玩过3.1,所以不确定是什么使它加载到每个页面中。


是的,我找到了该文件,但没有找到更多详细信息。我以为我的主题有点奇怪,正在触发它。所以我尝试了默认的二十主题,它也有它。看来它是wp_headWP v3.1自动引发的
Sahas Katta 2010年

0

是的,它是由wp_head自动抛出到主题中的...通过将下面的代码放在主题的functions.php中,将其删除

remove_action( 'wp_head', 'l10n' );

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.