Wp-embed.min.js làm gì trong WordPress 4.4?


52

Câu hỏi

  1. Không những gì wp-embed.min.jstập tin làm gì? Tôi nhận thấy nó được thêm vào cuối chân trang blog của tôi.
  2. Làm sao để tôi thoát khỏi nó?

Cố gắng

Sau một số googling và tôi tìm thấy Nhúng trên Codex. Tại sao WordPress nghĩ rằng tôi muốn thêm video, v.v. vào trang của mình theo mặc định?

Xung quanh

WordPress 4.4


1
Đây là probabli liên quan đến wp với tư cách là máy chủ oEmbed chứ không phải máy khách
Mark Kaplun

Tôi cố gắng để thêm câu trả lời cho phần đầu của câu hỏi
prosti

11
Khá chắc chắn rằng nó chỉ ở đó để làm chậm trang của bạn.
Josh Habdas

@MarkKaplun là chính xác. wp-embed.min.js cho phép bạn nhúng các bài đăng từ các trang web WordPress từ xa vào trang web WordPress của riêng bạn, thông qua oEmbed.
Jonathan Nicol

Câu trả lời:


61

Cuối cùng tôi cũng có thể thoát khỏi điều đó bằng cách sử dụng cái này:

function my_deregister_scripts(){
  wp_deregister_script( 'wp-embed' );
}
add_action( 'wp_footer', 'my_deregister_scripts' );

4
Thêm nó vào hành động "wp_enqueue_scripts", dường như cũng hoạt động.
andershagbard

7
Có, tôi sẽ sử dụng wp_enqueue_scriptsmóc và wp_dequeue_script()thay vìwp_deregister_script()
swissspidy

@swissspidy wp_dequeue_script( 'wp-embed' );sẽ không hoạt động - bạn có thể vui lòng chạy thử không? Đề xuất mui xe là hợp lệ.
Aziz

Theo kịch bản WordPress 4.6 @Trix hoạt động tốt. Cảm ơn bạn!
Sebastian

1
Sử dụng này sẽ không vượt qua themecheck .
lowTechsun

20

Tôi đã đến chủ đề này với cùng một câu hỏi: tệp wp-embed.min.js làm gì? Không có câu trả lời hiện tại giải quyết chính xác câu hỏi này.

Đầu tiên, tôi khá chắc chắn rằng embed.min.js không liên quan đến việc nhúng nội dung oEmbed từ các nhà cung cấp khác: Vimeo, YouTube, v.v. Bạn có thể xóa embed.min.js và các nhúng đó sẽ tiếp tục hoạt động.

Nó liên quan cụ thể đến việc nhúng các bài đăng WordPress từ blog / trang web của người khác. Nhúng bài viết WordPress bên trong bài viết WordPress: vì vậy meta! Tính năng này đã được giới thiệu trong WordPress 4.4 .

Vô hiệu hóa embed.min.js sẽ ngăn tính năng đó hoạt động trên trang web của bạn.

Bạn có thể kiểm tra điều này một cách dễ dàng: Dán URL của bài đăng WordPress của người khác vào một trong những bài đăng của riêng bạn. WP nên chuyển đổi URL đó thành một widget nhúng. Khi bạn xem bài đăng của mình ở mặt trước, bạn sẽ nhận thấy rằng đánh dấu của bạn có chứa một blockquote và iframe. Blockquote là một liên kết chỉ có văn bản đến bài đăng blog bạn đã nhúng, trong khi nguồn của iFrame là URL của bài đăng trên blog có /embed/thêm: điểm cuối oEmbed của nó.

embed.min.js ẩn blockquote và hiển thị iframe. Nó cũng thực hiện một số shenanigans khác để làm cho iframe chơi tốt.

Bây giờ, hãy thử xóa tập lệnh embed.min.js khỏi trang của bạn bằng một trong các phương thức được mô tả trong các câu trả lời khác. Tải lại trang của bạn và bạn sẽ nhận thấy rằng blockquote hiển thị nhưng iframe bị ẩn.

Nói tóm lại: nếu bạn muốn nhúng các bài đăng WordPress của người khác vào các bài đăng WordPress của riêng bạn, hãy để lại embed.min.js. Nếu bạn không quan tâm đến tính năng này thì bạn có thể gỡ bỏ nó một cách an toàn.


3
Lưu ý rằng việc xóa embed.jslà không đủ để vô hiệu hóa các nhúng và thậm chí có thể dẫn đến hành vi kỳ lạ nếu không được thực hiện đúng. Để vô hiệu hóa hoàn toàn các nhúng này, hãy sử dụng plugin Vô hiệu hóa nhúng được đề xuất chính thức .
swissspidy

Làm việc như mong đợi và giải thích trong báo chí 5.x là tốt.
inrsaurabh

8

Câu trả lời của Trix không phù hợp với tôi trên WordPress 4.4.1, nhưng tôi đã tìm thấy một giải pháp trong mã Vô hiệu hóa plugin WordPress. Thêm mã này (đã sửa đổi) trong functions.phptệp của chủ đề của bạn để xóa wp-embed.min.jstệp khỏi giao diện hoàn toàn:

add_action( 'init', function() {

    // Remove the REST API endpoint.
    remove_action('rest_api_init', 'wp_oembed_register_route');

    // Turn off oEmbed auto discovery.
    // Don't filter oEmbed results.
    remove_filter('oembed_dataparse', 'wp_filter_oembed_result', 10);

    // Remove oEmbed discovery links.
    remove_action('wp_head', 'wp_oembed_add_discovery_links');

    // Remove oEmbed-specific JavaScript from the front-end and back-end.
    remove_action('wp_head', 'wp_oembed_add_host_js');
}, PHP_INT_MAX - 1 );

3
Sử dụng disable_embeds_init()như tên chức năng là một ý tưởng thực sự xấu. Nếu bạn định cài đặt plugin Vô hiệu hóa nhúng một ngày, bầu trời sẽ sụp đổ. Tôi khuyên bạn chỉ nên cài đặt plugin, không có lợi ích gì khi thêm phần này vào tệp tin.php của chủ đề. Nếu bạn khăng khăng làm như vậy, bạn thực sự nên sử dụng một tên hàm khác.
swissspidy

Cảm ơn đề xuất @swissspidy, tôi đã cập nhật tên của hàm
Nadeem Khan

2
Lưu ý rằng điều này sẽ không xóa JS khỏi frontend / backend, nó cũng sẽ vô hiệu hóa hoàn toàn khả năng nhúng bài đăng của bạn trên một trang web khác, WP Oembed sẽ không hoạt động
Tom J Nowell

Bài viết về Kinsta xây dựng về phương pháp sử dụng các bộ lọc này để loại bỏ nó kinsta.com/ledgeledridease/disable-embeds-wordpress
Andrew Schultz

4

Tôi nghĩ rằng phần này vẫn còn thiếu.

Tệp wp-embed.min.js làm gì? Tôi nhận thấy nó được thêm vào cuối chân trang blog của tôi.

Câu trả lời cho câu hỏi này là trong theo dõi. https://core.trac.wordpress.org/changeset353708

Nhúng: Xóa & ký tự khỏi mã nhúng nhúng nội tuyến.

Các phiên bản cũ hơn của WordPress sẽ chuyển đổi những & ký tự đó thành &, điều này tạo ra một số JS không có chức năng. Nếu mọi người đang chạy một bản phát hành cũ hơn, chúng ta đừng làm cho cuộc sống của họ khó khăn hơn nó đã có.

Nó cũng sẽ cố gắng đánh hơi tác nhân người dùng.


2
Văn bản bạn đã trích dẫn ("Xóa & ký tự khỏi mã nhúng nhúng nội tuyến", v.v.). là một thông điệp cam kết duy nhất cho tệp, nhưng không mô tả mục đích chung của tập lệnh. Tôi đã cung cấp câu trả lời của riêng tôi mà hy vọng làm sáng tỏ hơn.
Jonathan Nicol
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.