WordPress 3.1でl10n.jsは何をしますか?そして、どうすれば削除できますか?


8

テストサーバーにWP 3.1 Beta 2をインストールしました。l10n.jsヘッダーに自動的に挿入される新しいファイルが同梱されていることに気付きました。

私は少し掘り下げましたが、それはローカリゼーションと関係があります。多くの人がこれを使用していないと思いますので、どうすれば削除できるのでしょうか。

削除しないことが重要な場合は、お知らせください。

回答:


12

convertEntities()(名前が示すように)HTMLエンティティを実際の値に変換する関数が含まれています。主に、を使用してローカリゼーションデータをPHPからJS側に送信するスクリプトに使用されwp_localize_script()ます。l10n_print_afterコードベースで検索するだけで、多くのことがわかります。

追加したデータwp_localize_script()は、変換するスクリプトの前に追加されます(そこで参照されるため、そうする必要があります)。ただし、スクリプト連結子を使用する場合(使用されたすべてのJSファイルを返すリクエストが1つしかない場合)、この1つのファイルもすべてのローカライズされたデータの後に呼び出されますが、convertEntities()必要なときに定義されていません。このため、この機能は一般utils.jsファイルから分離され、最上位に高い優先順位で追加されます。

このため、これを削除しないでください。翻訳可能な文字列を使用するすべてのスクリプトはそれを使用し(たとえ英語であっても)、エンティティがまだある場所を壊す可能性があります。


1
よく説明してくれてありがとう!:)まだいくつかの質問があります。私の主な関心事は、フロントエンドの各ユーザーに対して別の不要なリクエストを追加することだけです。JSユーザーが目にするのは、私自身の単純なscripts.jsとだけjqueryです。l10nがWPダッシュボードに表示されてもかまいませんが、作業中のサイトには大量のトラフィックがあり、すべてを最適化することに非常に注意を払っています。誰かが原因として管理バーに言及しましたが、サイトの著者はほんのわずかです。それらが影響を受けるかどうかは気にせず、サイトの他の部分が遅くなることを望まないだけです。何をすることをお勧めしますか?
Sahas Katta

1
そのため、ZERO ファイルがキューに登録されている場合でも、ロードwp_register_scriptがトリガーさl10n.jsれているように見え.jsます。トラフィックの少ない作者にはロードされてもかまいませんが、通常の訪問者のパブリックページにはロードされませんjavascript。のようなスクリプトが必要になったとしても、にjquery依存する必要はありませんutils.js。少なくともフロントエンドでは過去にそうしたことはありませんでした。
Sahas Katta、

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

上記のコードを使用して、function.phpのl10n.jsを登録解除します


1

「コメント返信」スクリプトをエンキューするときに含まれているようです。'comment-reply'がコメントを有効にできるページにのみロードされるようにする必要があることに注意してください(たとえばis_singular()、スクリプトをキューに入れる前に確認してください)。


うーん、comment-replyスクリプトとは関係ないと思います。現時点では、テストサイトにキューに入っていることはまったくありません。サイトのすべてのページに表示されます。私はテストするためにWP 3.0.3に切り替えさえしました、そしてそれは消えます。私は新しい3.1ベータ2実行した場合戻ってくる
Sahas刈田

comment-replyWordPressのSVNトランクバージョンを実行している両方のテストベッドでエンキューしているページでのみ表示されます。
mtekk 2010

1

私のインストールでは、このスクリプトが新しい管理バーと一緒に読み込まれ、管理バーを取り除くとl10n.jsが取り除かれることがわかりました(しかし、Janの答えは、「なぜ」と答えることと同じです)。

バーの取り外しは簡単でした。

remove_action( 'init', 'wp_admin_bar_init' );

これは実際には質問に対応していませんが(他の回答で証明されています)、誰かがそのひどいバーを削除したい場合は、上記の方法で行います。


うーん、私のコードの他の何かもそれを引き起こしています。私はジャストで超基本的なテーマを作成しました、header/footer/index/sidebar.phpそしてそれを取り除くアクションは問題を解決しました。しかし、私の通常のテーマでは、すべてのエンキューを削除しても、引き続きロードされます。とにかくテンプレートにハードコードされているグーグルアナリティクスを除いて、WPのヘッド/フッターにゼロのJavaScriptを持っています。
Sahas Katta、

1
デフォルトのテーマが有効になっていて、プラグインがない(または最小限)の場合、管理バーを削除すると、スクリプトがフロントサイドにまったく読み込まれません。Janは、このスクリプトがいつ、どのように呼び出されるかについて、いくつかの重要な情報を投稿したと思います(私はそれを削除することについてのみ話していたので、うまくいったことを投稿しました)。
t31os 2010

わかりましたので、もう少し実験してみました。私の中にいくつかのwp_register_script発言がありましたfunctions.php。これはl10n.js.jsファイルをエンキューしたことがない場合でもトリガーされます。管理バーも無効にしています!
Sahas Katta、

1

それを削除する方法:

function kill_l10n(){
    if(!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ヘルパー関数を別のjsファイルに移動して、常に最初に出力できるようにします。

私はまだ3.1で遊んでいなかったので、どのページに何が読み込まれるのかわかりません。


うん、私はそのファイルを見つけましたが、それ以上の詳細は見つかりませんでした。私のテーマの奇妙なことがそれを引き起こしていると思いました。だから私はデフォルトの20テーマを試してみましたが、それもありました。wp_headWP v3.1によって自動的に投入されたようです
Sahas Katta

0

うんそれは自動的にwp_headによってテーマ内にスローされます...テーマのfunctions.phpに以下のコードを配置することによってそれを削除します

remove_action( 'wp_head', 'l10n' );

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.