Hướng dẫn vô hiệu hóa Embed Script (wp-embed.min.js) trong WordPress một cách đơn giản.
Nếu bạn là người hay để ý đến tốc độ load của website nói chung và page-size nói riêng thì chắc hẳn bạn đã nhận thấy điều mà tôi đang muốn nói đến trong bài viết này. Kể từ phiên bản WordPress 4.4, các lập trình viên của Automattic đã tích hợp thêm 1 file JavaScript mang tên Embed (wp-embed.min.js
), cho phép bạn nhúng bất kỳ một bài viết nào (được viết trên nền tảng WordPress) vào trong bài viết của bạn. Điều này đồng nghĩa với việc website của bạn đã trở thành một oEmbed, tương tự như Facebook, Twitter, Google+… Chỉ cần paste link vào trình soạn thảo trực quan (Visual) là bạn sẽ nhận được kết quả trông giống như hình bên dưới.
Tham khảo thêm:
- Làm sạch header của WordPress giúp website load nhanh hơn
- Loại bỏ Emoji để tăng tốc độ load cho website WordPress
Tính năng Embed giúp trải nghiệm với WordPress trở nên thú vị hơn. Tuy nhiên, điều khó chịu là nó được bật mặc định, do đó, kể cả khi bạn không dùng đến thì Embed Script vẫn được load, khiến cho page-size phình to ra… một chút. Script này được load ở footer và các bạn có thể nhìn thấy khi view source của website:
Ngoài ra, nó còn chèn thêm 2 dòng code vào phần header trong HTML của bài viết/ trang nữa:
Khi nào bạn nên vô hiệu hóa Embed Script?
Trong những trường hợp sau đây, bạn nên vô hiệu hóa Embed Script (wp-embed.min.js
) để giải phóng page-size và giảm số lượng truy vấn HTTP:
- Bạn không có nhu cầu nhúng (embed) bất cứ bài viết hay trang nào từ website khác vào website của bạn.
- Bạn không muốn cho phép nhúng (embed) bất cứ bài viết hay trang nào trên website của bạn vào các website khác.
Làm thế nào để vô hiệu hóa Embed Script?
Tùy theo theme bạn đang sử dụng mà phương pháp sẽ khác nhau:
Đối với theme Paradise
Theme Paradise đã được tích hợp sẵn tính năng này trong Giao diện => Tùy biến => Thiết lập giao diện => Tối ưu tốc độ => Vô hiệu hóa WP Embed Script nên các bạn chỉ cần truy cập và chuyển nó sang trạng thái Có rồi lưu lại là được.
Đối với các theme khác
Rất đơn giản, các bạn chỉ cần thêm đoạn code sau đây vào cuối file functions.php
của theme hoặc child theme đang sử dụng và lưu lại là xong:
//* Remove WP Embed Script
function stop_loading_wp_embed() {
if (!is_admin()) {
wp_deregister_script('wp-embed');
}
}
add_action('init', 'stop_loading_wp_embed');
Thêm tiếp đoạn code này vào bên dưới để loại bỏ hoàn toàn tính năng oEmbed nếu bạn muốn:
// Remove the REST API endpoint.
remove_action( 'rest_api_init', 'wp_oembed_register_route' );</p>
<p>// Turn off oEmbed auto discovery.
add_filter( 'embed_oembed_discover', '__return_false' );</p>
<p>// Don't filter oEmbed results.
remove_filter( 'oembed_dataparse', 'wp_filter_oembed_result', 10 );</p>
<p>// Remove oEmbed discovery links.
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );</p>
<p>// Remove oEmbed-specific JavaScript from the front-end and back-end.
remove_action( 'wp_head', 'wp_oembed_add_host_js' );
Tuy nhiên, trong một số trường hợp, code thứ 2 có thể gây lỗi chức năng và giao diện. Do đó, chúng tôi không khuyên dùng. Nếu bạn thêm code thứ 2 vào mà gặp lỗi giao diện thì chỉ cần xóa đi là được.
Vô hiệu hóa Embed Script bằng plugin
Ngoài ra, các bạn cũng có thể sử dụng những plugin như Disable Embeds (download) để làm điều tương tự. Plugin này không có phần thiết lập. Tất cả những gì các bạn cần làm là cài đặt và kích hoạt nó.
Cuối cùng, view source website để kiểm tra kết quả. Chúc các bạn thành công!
Nếu bạn thích bài viết này, hãy theo dõi blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất nhé. Cảm ơn rất nhiều. :)
Mình có vài trang sử dụng iframe để nhúng trang khác vào blog, giờ vô hiệu hóa tính năng này có ảnh hưởng gì không bạn?
Không bạn nhé. Nó chỉ vô hiệu hóa tính năng nhúng các bài viết hoặc trang trên blog của bạn vào 1 bài viết cùng blog thôi.
Admin cho mình hỏi là có cách nào disable script của Facebook này trên wordpress không ạ. Minh xin cảm ơn
Cái này là script của Facebook Pixel bạn nhé. Nếu bạn chạy quảng cáo Facebook trên website của mình thì không thể bỏ script này đi được.
Do mình không có quảng cáo trên website nhưng khi feed links thì nó hiện lên post. Nên mình hỏi bạn xem có cách nào xóa hoặc stop nó không ạ. Vì website sẽ call facebookevents.js khi hiện post.
Bạn copy tự động bài viết của website khác về à? Nếu thế thì chịu.
Đúng cái em cần, lâu nay muốn chặn mà ko biết cách hên quá
Bài này mình đăng lâu lắm rồi mà. Mới cập nhật lại thôi. :P
cho mình hỏi. mình chèn một đoạn js vào phần head của site bằng chức năng Header code trong phần theme Options. Bây giờ mình muốn xóa đi nhưng không thấy đoạn js đó ở đâu. Cậu có thể chỉ giúp mình được không?
Bên mình có bán theme này không bạn?
Vui lòng đọc kỹ quy định bình luận bạn nhé. Nếu bạn còn tiếp tục cố tình vi phạm thì mình sẽ xóa toàn bộ bình luận của bạn đấy. Xóa link chỉ mới là cảnh cáo thôi.
Phần này phải tự thêm chứ chưa có đúng k Hiếu?
Đúng rồi bạn. Cái này bạn phải tự thêm vào. Bởi vì mình không chắc những người dùng khác có muốn loại bỏ hay không, nên mình không thêm sẵn vào theme Paradise. :P
Uh Hiếu. Cảm ơn nhé. Mình muốn đưa chức năng search lên menu ở đầu trang giống như blog này thì chỉnh ntn vậy?
Bạn tham khảo link này. :P
Uh, cảm ơn Hiếu nha. Để chỉnh lại blog
Lưu ý là chuyển form tìm kiếm lên đó sẽ phải tùy biến lại CSS của theme. Hơn nữa, khung tìm kiếm sẽ không hiển thị trên giao diện mobile. Nên bạn cần phải cân nhắc kỹ. :P
Trên mobile thì k sao.
Chuyển menu lên đó là sao mình k hiểu lắm.
Ý mình là giống blog này à Hiếu. Tức là chỉ hiện menu trên header thôi ( chứ k phải menu dưới banner), để khung tìm kiếm ở đó thì khi kéo xuống giữa hay cuối trang vẫn có thể tìm kiếm đc.
Mình viết nhầm. :D Chuyển form tìm kiếm lên menu. :P
Uh, cảm ơn Hiếu nha.
Khi nào settup không dc pm nhé
Tắt cái này đi thì có ảnh hưởng gì đến việc chèn bài viết của facebook, twitter hay youtube ko vậy bạn?
Bạn thử là biết ngay mà. Bị lỗi thì gỡ ra, có sao đâu. :P
Mình thử nó bị lỗi trắng trang à, không biết có bị lỗi dấu gạch gì không nhỉ?
Lỗi syntax thì không có đâu. Chỉ sợ xung đột với code nào đó trên theme hoặc plugin của bạn thôi. Thử chỉ chèn đoạn code 1 thôi, đừng chèn code 2 xem sao.
Cái này disable cũng tăng thêm ít điểm page speed. Nhưng nó mất đi tính tiện dụng của việc chia sẻ thông tin.
PS: a Hiếu genesis palette pro trong gói VIP nào k ạ?
Hiện giờ thì không có bạn ạ. Đang tính kêu gọi anh chị em góp gạo mua chung trọn bộ theme của StudioPress đây. Lần trước mất tài khoản tiếc đứt cả ruột. Giờ tính mua lại mà nhiều tiền quá ($500) nên chưa dám triển khai. :P
Hay quá, mình hay dùng pingdom để đo dung lượng site thì thấy có cái file script này mà ko biết cách bỏ nó.
Bên mình có theme này không cậu? Hoặc theme nào gần giống cũng được.
https://themeforest.net/item/comre-coupon-codes-affiliates-wordpress-theme/11316657
Bên mình không có theme này đâu bạn ạ. Chỉ có theme Coupon của MyThemeShop thôi: http://demo.mythemeshop.com/coupon/ :)