L10n.js làm gì trong WordPress 3.1? Và làm thế nào để tôi loại bỏ nó?


8

Tôi vừa cài đặt WP 3.1 Beta 2 trên máy chủ thử nghiệm của mình. Tôi nhận thấy rằng nó xuất xưởng với một l10n.jstệp mới sẽ tự động được chèn vào tiêu đề.

Tôi đã làm một chút về đào và nó có liên quan đến nội địa hóa. Tôi đoán rằng nhiều người không sử dụng nó, vì vậy tôi tự hỏi làm thế nào tôi có thể loại bỏ nó?

Nếu điều quan trọng là không loại bỏ nó, xin vui lòng cho tôi biết là tốt.

Câu trả lời:


12

Nó chứa convertEntities()hàm (như tên gọi) chuyển đổi các thực thể HTML thành giá trị thực của chúng. Nó chủ yếu được sử dụng cho các tập lệnh gửi dữ liệu bản địa hóa từ PHP sang phía JS bằng cách sử dụng wp_localize_script(). Chỉ cần tìm kiếm l10n_print_aftertrong cơ sở mã và bạn thấy nó rất nhiều.

Dữ liệu bạn thêm vào wp_localize_script()được thêm vào trước tập lệnh mà nó dịch (phải như vậy, vì nó được tham chiếu ở đó). Tuy nhiên, nếu bạn sử dụng trình ghép nối tập lệnh (vì vậy bạn chỉ có một yêu cầu trả về tất cả các tệp JS đã sử dụng), thì một tệp này cũng sẽ được gọi sau tất cả dữ liệu được bản địa hóa - nhưng bây giờ convertEntities()không được xác định khi chúng ta cần. Vì lý do này, chức năng này được tách ra khỏi utils.jstệp chung và được thêm mức ưu tiên cao ở trên cùng.

Vì lý do này, bạn không nên xóa nó: tất cả các tập lệnh sử dụng chuỗi có thể dịch đều sử dụng nó (ngay cả khi chúng vẫn bằng tiếng Anh) và bạn có thể phá vỡ các vị trí vẫn có thực thể.


1
Cảm ơn đã xây dựng rất tốt! :) Vẫn có một số câu hỏi mặc dù. Mối quan tâm chính của tôi chỉ là thêm một yêu cầu không cần thiết cho mỗi người dùng ở mặt trước. Người dùng JS duy nhất nhìn thấy là đơn giản của riêng tôi scripts.jsjquery. Tôi không ngại l10n xuất hiện trong Bảng điều khiển WP, nhưng trang web tôi đang làm việc có lưu lượng truy cập lớn và tôi cực kỳ kén chọn về việc giữ cho tất cả được tối ưu hóa. Ai đó đã đề cập đến một Admin Bar là nguyên nhân, nhưng chỉ có một vài tác giả cho trang web. Tôi không quan tâm nếu nó ảnh hưởng đến họ, chỉ không muốn điều đó làm chậm phần còn lại của trang web. Bạn đề nghị làm gì?
Sahas Katta

1
Vì vậy, có vẻ như wp_register_scriptđang kích hoạt l10n.jsđể tải ngay cả khi tôi có .jscác tệp ZERO . Tôi không phiền nếu nó tải cho các tác giả, những người có lưu lượng truy cập thấp, nhưng nó tải trên các trang công khai cho khách truy cập thường xuyên ngay cả khi tôi không phục vụ javascripthọ. Ngay cả khi tôi cần một kịch bản như thế jquery, nó cũng không cần phải phụ thuộc vào utils.js. Nó chưa bao giờ làm trong quá khứ cho front-end ít nhất.
Sahas Katta

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

sử dụng mã ở trên để hủy đăng ký l10n.js trong function.php


1

Có vẻ như nó được bao gồm khi bạn ghi lại đoạn mã 'bình luận-trả lời'. Lưu ý rằng bạn có thể muốn đảm bảo 'bình luận-trả lời' chỉ được tải trên các trang có thể bật nhận xét (ví dụ: kiểm tra is_singular()trước khi ghi lại tập lệnh).


Hmm, tôi không nghĩ nó có liên quan gì đến comment-replykịch bản. Tôi không có ý tưởng rằng nó đã được xử lý trên trang web thử nghiệm của tôi tại thời điểm này. Nó xuất hiện trên bất kỳ và mọi trang của trang web. Tôi thậm chí đã chuyển trở lại WP 3.0.3 để kiểm tra và nó biến mất. Quay trở lại nếu tôi chạy bản 3.1 beta 2. mới
Sahas Katta

Tôi chỉ thấy nó trên các trang đang mê hoặc comment-replytrên cả hai bản thử nghiệm của tôi đang chạy phiên bản trung kế SVN của WordPress.
mtekk

1

Tôi nhận thấy trên bản cài đặt của mình rằng tập lệnh này đã được tải cùng với thanh quản trị mới, việc thoát khỏi thanh quản trị đã loại bỏ l10n.js cho tôi (nhưng tôi nghĩ câu trả lời của Jan phù hợp hơn với việc trả lời "tại sao").

Loại bỏ thanh là dễ dàng ..

remove_action( 'init', 'wp_admin_bar_init' );

Điều này không thực sự giải quyết câu hỏi (bằng chứng là các câu trả lời khác), nhưng trong trường hợp bất kỳ ai cũng muốn loại bỏ thanh khủng khiếp đó, ở trên là cách bạn làm điều đó ..


Hmm một cái gì đó khác trong mã của tôi cũng đang kích hoạt nó. Tôi đã tạo ra một chủ đề siêu cơ bản chỉ header/footer/index/sidebar.phpvà hành động loại bỏ đó đã giải quyết vấn đề. Nhưng trong chủ đề thường xuyên của tôi, ngay cả khi tôi loại bỏ tất cả các mục tiêu, nó vẫn tiếp tục tải. Tôi có javascript ZERO trong phần đầu / chân trang WP ngoài phân tích google, phần cứng được mã hóa vào dù sao đi nữa.
Sahas Katta

1
Với chủ đề mặc định được bật, không có plugin (hoặc tối thiểu), tôi thấy hoàn toàn không có tập lệnh nào được tải phía trước khi tôi gỡ bỏ thanh quản trị. Tôi nghĩ rằng Jan đã đăng một số thông tin quan trọng liên quan đến thời điểm và lý do kịch bản này được gọi (tôi chỉ nói về việc loại bỏ nó và đăng những gì tôi thấy có hiệu quả).
t31os

Được rồi, đây là những gì tôi tìm thấy sau khi thử nghiệm thêm một chút. Tôi đã có một số wp_register_scripttuyên bố trong của tôi functions.php. Điều đó kích hoạt l10n.jsxuất hiện ngay cả khi tôi không bao giờ liệt kê bất kỳ .jstập tin nào . Tôi cũng bị vô hiệu hóa Admin Bar!
Sahas Katta

1

Làm thế nào để loại bỏ nó:

hàm kill_l10n () {
    nếu (! is_admin ())
        wp_deregister_script ('l10n');
}
add_action ('wp_print_scripts', 'kill_l10n');

Thả vào hàm.php hoặc bất cứ điều gì (plugin, v.v.)

Làm việc cho tôi.


1

Để loại bỏ nó, hãy thêm phần sau vào tệp tin.php của chủ đề.

wp_deregister_script ('l10n');


0

Các nhà phát triển nguồn cho tệp có mô tả sau:

// Được sử dụng để đảm bảo rằng các Thực thể được sử dụng trong chuỗi L10N là chính xác

và cam kết ghi chú:

Di chuyển hàm trợ giúp l10n vào tệp js riêng biệt để chúng tôi luôn có thể xuất nó trước.

Tôi chưa chơi với 3.1 nhưng chưa chắc điều gì có thể khiến nó tải trong mỗi trang.


Yup tôi tìm thấy tập tin đó, nhưng không tìm thấy thêm chi tiết. Tôi nghĩ một cái gì đó kỳ lạ trong chủ đề của tôi đã kích hoạt nó. Vì vậy, tôi đã thử chủ đề hai mươi mặc định và nó cũng có nó. Có vẻ như nó được ném vào wp_headtự động bởi WP v3.1
Sahas Katta

0

Đúng là nó được ném vào bên trong chủ đề bởi wp_head tự động ... Tôi xóa nó bằng cách đặt mã bên dưới trong các hàm của chủ đề.php.

remove_action( 'wp_head', 'l10n' );

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.