Apa yang dilakukan l10n.js di WordPress 3.1? Dan bagaimana cara menghapusnya?

8

Saya baru saja menginstal WP 3.1 Beta 2 di server pengujian saya. Saya perhatikan bahwa ia dikirimkan dengan l10n.jsfile baru yang dimasukkan secara otomatis ke header.

Saya melakukan sedikit penggalian dan ini ada hubungannya dengan lokalisasi. Saya menduga banyak orang tidak menggunakan ini, jadi saya bertanya-tanya bagaimana saya bisa menghapusnya?

Jika penting untuk tidak menghapusnya, beri tahu saya juga.

Sahas Katta
sumber

Jawaban:

12

Ini berisi convertEntities()fungsi yang (seperti namanya) mengubah entitas HTML ke nilai aktualnya. Ini sebagian besar digunakan untuk skrip yang mengirim data lokalisasi dari PHP ke sisi JS menggunakan wp_localize_script(). Cari saja l10n_print_afterdi basis kode dan Anda sering melihatnya.

Data yang Anda tambahkan wp_localize_script()ditambahkan sebelum skrip diterjemahkan (harus, karena direferensikan di sana). Namun, jika Anda menggunakan concatenator skrip (jadi Anda hanya memiliki satu permintaan yang mengembalikan semua file JS yang digunakan), file yang satu ini juga akan dipanggil setelah semua data terlokalisasi - tetapi sekarang convertEntities()tidak ditentukan saat kami membutuhkannya. Untuk alasan ini fungsi ini memisahkan utils.jsfile umum dan ditambahkan dengan prioritas tinggi di bagian atas.

Karena alasan ini, Anda tidak boleh menghapusnya: semua skrip yang menggunakan string yang dapat diterjemahkan menggunakannya (bahkan jika masih dalam bahasa Inggris), dan Anda mungkin merusak tempat yang masih memiliki entitas.

Jan Fabry
sumber
1
Terima kasih telah menguraikan dengan baik! :) Masih ada beberapa pertanyaan. Perhatian utama saya hanyalah menambahkan permintaan lain yang tidak perlu untuk setiap pengguna di ujung depan. Satu-satunya pengguna JS lihat adalah saya sendiri scripts.jsdan sederhana jquery. Saya tidak keberatan muncul di WP Dashboard, tetapi situs yang saya kerjakan mendapat banyak lalu lintas dan saya menjadi pemilih yang super untuk menjaga semuanya dioptimalkan. Seseorang menyebut Admin Bar sebagai penyebabnya, tetapi hanya beberapa penulis untuk situs tersebut. Saya tidak peduli jika itu mempengaruhi mereka, hanya tidak ingin itu memperlambat sisa situs. Apa yang Anda sarankan lakukan?
Sahas Katta
1
Jadi sepertinya wp_register_scriptmemicu l10n.jsuntuk memuat bahkan jika saya memiliki .jsfile NOL enqueued. Saya tidak keberatan jika memuat untuk penulis, yang lalu lintasnya rendah, tetapi memuat pada halaman publik untuk pengunjung tetap walaupun saya tidak melayani javascriptmereka. Bahkan jika saya membutuhkan skrip seperti jquery, itu tidak harus bergantung pada utils.js. Setidaknya tidak pernah di masa lalu untuk front-end.
Sahas Katta
4
if ( !is_admin() ) {
function my_init_method() {
wp_deregister_script( 'l10n' );
}
add_action('init', 'my_init_method'); 
}

gunakan kode di atas untuk deregister l10n.js di function.php

ZHAO Xudong
sumber
1

Sepertinya itu disertakan ketika Anda membuat skrip 'komentar-balasan'. Perhatikan bahwa Anda mungkin ingin memastikan 'komentar-balasan' hanya dimuat pada halaman yang dapat mengaktifkan komentar (mis. Periksa is_singular()sebelum membuat skrip).

mtekk
sumber
Hmm, saya pikir itu tidak ada hubungannya dengan comment-replyskrip. Saya tidak memiliki itu enqueued di situs pengujian saya sama sekali sebenarnya saat ini. Itu muncul di setiap dan setiap halaman situs. Saya bahkan beralih kembali ke WP 3.0.3 untuk menguji dan itu hilang. Kembali jika saya menjalankan 3.1 beta baru 2.
Sahas Katta
Saya hanya melihatnya di halaman yang mendukung comment-replykedua testbed saya yang menjalankan versi SVN trunk WordPress.
mtekk
1

Saya menemukan pada instalasi saya bahwa skrip ini dimuat bersama bar admin baru, menyingkirkan admin bar menyingkirkan l10n.js untuk saya (tapi saya pikir jawaban Jan lebih sesuai dengan menjawab "mengapa").

Menghapus bilah itu mudah ..

remove_action( 'init', 'wp_admin_bar_init' );

Ini sebenarnya tidak menjawab pertanyaan (sebagaimana dibuktikan oleh jawaban lain), tetapi jika seseorang ingin menghapus bar yang mengerikan itu, di atas adalah bagaimana Anda melakukannya ..

t31os
sumber
Hmm ada hal lain dalam kode saya yang memicu juga. Saya membuat tema super dasar dengan adil header/footer/index/sidebar.phpdan tindakan menghilangkan itu menyelesaikan masalah. Tetapi pada tema reguler saya, bahkan jika saya menghapus semua enqueues, itu tetap memuat. Saya memiliki NOL javascript di WP head / footer selain dari google analytics yang sulit dikodekan ke dalam template.
Sahas Katta
1
Dengan tema default diaktifkan, tanpa plugin (atau minimal), saya benar-benar melihat tidak ada skrip yang dimuat di sisi depan ketika saya menghapus admin bar. Saya pikir Jan telah memposting beberapa informasi penting mengenai kapan dan mengapa skrip ini dipanggil (saya hanya berbicara mengenai cara menghapusnya, dan memposting apa yang saya temukan berhasil).
t31os
Oke jadi inilah yang saya temukan setelah sedikit lebih banyak bereksperimen. Saya punya beberapa wp_register_scriptpernyataan di blog saya functions.php. Itu memicu l10n.jsuntuk muncul bahkan jika saya tidak pernah meminta .jsfile apa pun . Saya juga menonaktifkan Admin Bar!
Sahas Katta
1

Cara menghapusnya :

function kill_l10n () {
    if (! is_admin ())
        wp_deregister_script ('l10n');
}
add_action ('wp_print_scripts', 'kill_l10n');

Jatuhkan functions.php atau apa pun (plugin, dll.)

Bekerja untukku.


sumber
1

Untuk menghapusnya tambahkan berikut ini ke file functions.php tema Anda.

wp_deregister_script ('l10n');


sumber
0

Sumber pengembang untuk file memiliki uraian berikut:

// Digunakan untuk memastikan bahwa Entitas yang digunakan dalam string L10N benar

dan commit note mengatakan:

Pindahkan fungsi pembantu l10n ke dalam file js yang terpisah sehingga kita selalu dapat menampilkannya terlebih dahulu.

Saya belum bermain dengan 3.1, jadi tidak yakin apa yang dapat membuatnya dimuat di setiap halaman.

Jarang
sumber
Yup saya menemukan file itu, tetapi tidak menemukan rincian lebih lanjut. Saya pikir sesuatu yang aneh dalam tema saya memicu itu. Jadi saya mencoba tema standar dua puluh dan itu juga. Sepertinya itu dilemparkan ke wp_headotomatis oleh WP v3.1
Sahas Katta
0

Ya itu dilemparkan ke dalam tema oleh wp_head secara otomatis ... Saya menghapusnya dengan menempatkan kode di bawah ini di functions.php tema

remove_action( 'wp_head', 'l10n' );

Mendongkrak
sumber