Vì vậy, WP 4.2 đã giới thiệu biểu tượng cảm xúc (mặt cười) về cơ bản thêm JS và các thứ linh tinh khác trên tất cả các trang của bạn. Một cái gì đó một số người có thể tìm thấy gây sốc. Làm thế nào để xóa hoàn toàn tất cả các trường hợp này?
Vì vậy, WP 4.2 đã giới thiệu biểu tượng cảm xúc (mặt cười) về cơ bản thêm JS và các thứ linh tinh khác trên tất cả các trang của bạn. Một cái gì đó một số người có thể tìm thấy gây sốc. Làm thế nào để xóa hoàn toàn tất cả các trường hợp này?
Câu trả lời:
Chúng tôi sẽ nối vào init
và xóa các hành động như sau:
function disable_wp_emojicons() {
// all actions related to emojis
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
// filter to remove TinyMCE emojis
add_filter( 'tiny_mce_plugins', 'disable_emojicons_tinymce' );
}
add_action( 'init', 'disable_wp_emojicons' );
Chúng tôi sẽ cần chức năng lọc sau đây để tắt biểu tượng cảm xúc TinyMCE:
function disable_emojicons_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( 'wpemoji' ) );
} else {
return array();
}
}
Bây giờ chúng tôi thở và giả vờ tính năng này không bao giờ được thêm vào lõi ... đặc biệt là trong khi hàng tấn lỗi đã được giải quyết vẫn chưa được thực hiện.
Điều này có sẵn như là một plugin, Vô hiệu hóa biểu tượng cảm xúc .
Ngoài ra, bạn có thể thay thế các mặt cười bằng các phiên bản gốc từ các phiên bản trước của WordPress bằng cách sử dụng Cổ điển mặt cười .
Chúng tôi cũng có thể xóa tìm nạp trước DNS bằng cách trả về false trên bộ lọc emoji_svg_url
(cảm ơn @yobddigi):
add_filter( 'emoji_svg_url', '__return_false' );
Settings -> Writing
nhưng điều đó thực sự gây phiền nhiễu. +1
Giải pháp tốt hơn nếu bạn muốn vô hiệu hóa điều này: sử dụng một plugin.
Mã giống như từ nhận xét của Christine: https://wordpress.org/plugins/disable-emojis/
Cùng một mã cũng sửa các mặt cười thành những cái cũ hơn: https://wordpress.org/plugins/ classic-smflower /
Nguồn: Tôi, vì tôi đã viết mã đó ở nơi đầu tiên. https://plugins.trac.wordpress.org/changeset/1142480/ classic-smflower
Đây là cách đơn giản để loại bỏ biểu tượng cảm xúc. Thêm mã dưới đây vào của bạnfunction.php
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
init
. Xem câu trả lời của tôi .
Nếu bạn muốn ngăn chặn Wordpress từ tự động chuyển đổi cũ smilies ASCII học của bạn thành Unicode biểu tượng cảm xúc (như ;-)
để 😉
) trong bài viết của mình hoàn toàn, bạn có thể muốnremove_filter('the_content', 'convert_smilies')
(Không chắc chắn 100% đây là câu hỏi về vấn đề gì, nhưng điều này đã giải quyết vấn đề của tôi và tôi hy vọng nó có thể hữu ích cho ai đó.)
Tôi đã thử một số mã ở trên nhưng mã duy nhất hoạt động ở cuối là mã này.
Đừng quên sao lưu các hàm.php của bạn trước khi triển khai các mã này.
// REMOVE WP EMOJI
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
add_action( 'init', 'disable_wp_emojicons', 3 );
Tin tốt, tôi đã thêm một yêu cầu tính năng:
Giới thiệu một tùy chọn mới cho WordPress WP_EMOICONS tại đây https://core.trac.wordpress.org/ticket/38252
và rõ ràng điều này đã được đánh dấu là trùng lặp https://core.trac.wordpress.org/ticket/32102 vì vậy chúng tôi có thể mong đợi một cái gì đó như
define( 'WP_EMOICONS', false );
trong các bản phát hành WordPress trong tương lai.
Vì biểu tượng cảm xúc WordPress được phục vụ từ sworg và chúng không bị nén, điều này ảnh hưởng đến thời gian tải SVG tùy thuộc vào số lượng biểu tượng cảm xúc bạn đang sử dụng và thậm chí có thể đưa ra cảnh báo trên công cụ PageSpeed Insights của Google.
Để khắc phục sự cố này, bạn có thể phân phát biểu tượng cảm xúc trực tiếp từ chính trang web WordPress của mình chứ không phải bằng cách thực hiện các cuộc gọi bên ngoài thông qua js.
Điều này có thể đạt được bằng cách cài đặt plugin Emoji nén có sẵn miễn phí trong kho lưu trữ plugin WordPress.org.
Khi plugin được kích hoạt, quá trình nén cung cấp mức tiết kiệm trong khoảng 3kb ~ 1,3kb (khoảng% 60) cho mỗi biểu tượng cảm xúc.
Nguồn: WPTavern