Bootstrap

Vũ Thành Lâm

Content - Code - SEO - MMO
17/10/1979
Tây Mỗ - Nam Từ Liêm - Hà Nội
thanhlam19792003

Lamvt – Vũ Thành Lâm – bắt đầu Code 2005 Freelancer từ 2006 với hàng ngàn dự án lớn nhỏ cho nước ngoài và hàng trăm dự án web cho Việt Nam.

SEO thành công rất nhiều dự án lớn, độ khó cao.
MOD (Moderator) và Admin (Administraror) của nhiều diễn đàn về SEO và CODE web MMO tại Việt Nam
Dạy Lập trình Thiết kế Web và SEO Miễn phí 15++ Năm (Từ 2006 đến Nay)

Vô hiệu hóa biểu tượng cảm xúc emojis với WordPress

3.7/5 - (3 bình chọn)

Câu hỏi

Phiên bản WP 4.2 đã giới thiệu thêm chức năng emojis (mặt cười). Về cơ bản, emojis này sẽ thêm các JS và dữ liệu rác trong khắp các page của bạn. Nó thực sự khiến một số người bị sốc. Làm sao để gỡ bỏ hoàn toàn các trường hợp như vậy?

Christine Cooper

Tôi thực sự đã rất sốc và gần như sụp xuống trên ghế khi đọc thông báo đó. – Tom J Nowell

Câu trả lời chính xác nhất

Chúng ta sẽ thêm vào init và gỡ bỏ các hoạt động như dưới đây:

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 ta cần đến hàm lọc dưới đây để vô hiệu hóa TinyMCE emojicons:

function disable_emojicons_tinymce( $plugins ) {
if ( is_array( $plugins ) ) {
return array_diff( $plugins, array( ‘wpemoji’ ) );
} else {
return array();
}
}

Bây giờ chúng ta có thể thở phào và xem như tính năng này chưa bao giờ được thêm vào lõi. Đặc biệt khi hàng loạt lỗi khác cần được giải quyết vẫn chưa được tiến hành.

Cái này sẵn có dưới dạng plugin,  Disable Emojis.

Ngoài ra, bạn cũng có thể thay thế các biểu tượng 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 Classic Smilies.

Cập nhật

Chúng ta cũng có thể loại bỏ DNS prefetch bằng cách trả về false trên bộ lọc emoji_svg_url (cảm ơn bạn nhé @yobddigi):

add_filter( ’emoji_svg_url’, ‘__return_false’ );

Câu trả lời của Christine Cooper

Cảm ơn! Tôi không biết tại sao họ lại không cho phép mọi người bật/ tắt tính năng này thông qua Settings -> Writing. Nhưng điều này thực sự rất phiền toái. – Howdy_McGee

Rất mong chờ plugin vô hiệu hóa emojicons của bạn trong trong repo hoặc github. – birgire

Và nhớ cho thêm link vào câu trả lời của bạn để mọi người có thể download plugin nhé. – Pieter Goosen

Đã có những plugin như vậy rồi  wordpress.org/plugins/classic-smilieswordpress.org/plugins/disable-emojis – pcarvalho

Cảm ơn câu trả lời của bạn! Tôi không thể tin nổi nó là một phần của lõi, ít nhất là với  “opt-in” hay là một cách để vô hiệu hóa nó. – phatskat

Thật là sốc khi nhận ra chúng thêm 114 dòng scripts và styles ở tiêu đề. Thậm chí chúng còn không được rút gọn. Cảm ơn plugin của bạn. – Debajyoti Das

Có thể thêm cái này add_filter( ’emoji_svg_url’, ‘__return_false’ ); nó sẽ loại bỏ dns prefetch. – yobddigi

@yobddigi Rất tuyệt! Tôi đã cập nhật nó rồi. – Christine Cooper

WP đang làm khó chúng ta hơn. Kể từ phiên bản 4.3, tùy chọn tắt graphic smileys đã bị xóa khỏi cài đặt mới. Và không có “smileys” thì cũng sẽ không có “emojis”… Bây giờ bạn phải a) add_filter( ‘option_use_smilies’, function(){ return false; } ); hoặc là b) sử dụng plugin này (chính xác thì nó cũng hoạt động giống như vậy): wordpress.org/plugins/keep-emoticons-as-text. Tôi thực sự thắc mắc ai đã tự nói với mình “Yeah, hãy thay đổi nội dung của người dùng bằng PHP, không có câu hỏi nào được hỏi cả. – jave.web


Một giải pháp tốt hơn để vô hiệu hóa nó là dùng plugin.

Code giống như trong bình luận của Christine: https://wordpress.org/plugins/disable-emojis/

Code tương tự cũng được sử dụng để sửa các smilies thành những cái cũ hơn: https://wordpress.org/plugins/classic-smilies/

Nguồn: tôi, vì tôi là người viết code đó đầu tiên.

https://plugins.trac.wordpress.org/changeset/1142480/classic-smilies

Câu trả lời của Otto

Tuyệt! Mặc dù tôi tìm thấy hàm này qua một github entry. Tôi đã cập nhật những link plugin này vào câu trả lời của tôi. Cảm ơn! – Christine Cooper

Vâng, bạn có thể làm như vậy. Tôi cũng đã cho nó vào github cho một người dùng twittergist.github.com/Otto42/b79ff5428993fcff45bb – Otto


Đây là một cách đơn giản để gỡ bỏ emoji. Thêm đoạn code dưới đây vào function.php của bạn:

remove_action( ‘wp_head’, ‘print_emoji_detection_script’, 7 );
remove_action( ‘wp_print_styles’, ‘print_emoji_styles’ );

Câu trả lời của Exclutips

Câu trả lời của tôi ở trên cũng đã nói đến điều này. – Christine Cooper

Cảm ơn, mã gỡ bỏ này hoạt động rất tốt. Thật kì lạ là khi thực hiện thao tác này các trang của tôi mất thêm 2 đến 3 giây để load. – Steve

Bạn nên chạy bằng init. Hãy xem câu trả lời của tôi ở trên. – Christine Cooper


Nếu bạn muốn chặn WordPress tự động chuyển ASCII smilies cũ của bạn thành Unicode emojis (giống như ;-) thành ?) trong các bài đăng của bạn, bạn có thể remove_filter(‘the_content’, ‘convert_smilies’)

(Không chắc chắn là câu trả lời của tôi trả lời đúng ý của câu hỏi. Nhưng nó đã giúp tôi giải quyết vấn đề của mình và mong là nó sẽ hữu ích cho ai đó.

Câu trả lời của Christallkeks


Tôi đã thử một số code ở trên nhưng chỉ có một cái giải quyết được vấn đề của tôi, đó là cái này.

Đừng quên sao lưu tệp functions.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’ );

Câu trả lời của johnhgaspay

Bạn đã kiểm tra một cách chính xác các code trong câu trả lời của tôi? – Christine Cooper

Vâng, tôi đã thử đi thử lại một số lần, trang web hoạt động trên máy chủ cloudflare-nginx. – johnhgaspay

Tôi đã thử kiểm tra lại code của tôi một lần nữa và thấy nó hoạt động tốt. Khi bạn thêm code vào file functions.php của bạn, hãy thử đặt mức độ ưu tiên cao hơn, giống như thế này: add_action( ‘init’, ‘disable_wp_emojicons’, 3 ); – Christine Cooper

Tin mới nhất

VR PLUS (https://vrplus.vn/ ) Là một trong những dự án do Lamvt thực hiện trong thời gian gần đây. Như...

Trong một năm qua, chúng tôi đã xuất bản khoảng 79 bài viết SEO trên blog Ahrefs. Các bài viết...

Khám phá kĩ thuật viết nội dung SEO Nếu không có SEO, nội dung của bạn có thể bị chìm...

Các website về lĩnh vực làm đẹp cần phải có một thiết kế (design) hấp dẫn và bắt mắt. Điều...

Core Web Vitals được đo lường như thế nào? Làm thế nào để bạn biết các bản sửa lỗi đã...

Tin được yêu thích

Như đã nói, phần mềm chỉnh sửa video đang ngày càng chứng tỏ được tầm quan trọng của mình, nhất...

Nhiều bạn thắc mắc là sau khi cài đặt Plugin cho Google AMP thì làm thế nào để kiểm tra,...

Các trang web giáo dục và các trang web của chính phủ có một lợi thế hơn trong bảng xếp...

Nội dung là một trong 3 tiêu chí quan trọng để google đánh giá thứ hạng tìm kiếm cho website...

Thẻ <span> </span> Thẻ <span> là thẻ khá đặc biệt trong HTML, theo mặc định thì thẻ <span> được thêm...

Khách đang xem

  1. Facebook đã ra mắt tiện ích gửi tin nhắn, nó cho phép các người quản lý trang web, blog cung...
    13 giây trước
  2. Backlink luôn là một yếu tố quan trọng giúp trang web của bạn tăng hạng trong top Google. Việc tìm...
    26 giây trước
  3. Nếu bạn đang tìm kiếm các plugin SEO WordPress tốt nhất cho các trang web WordPress, bài viết dưới đây...
    11 giây trước
  4. Google RankBrain đã có tín hiệu từ năm 2017. Thế nhưng, sự xuất hiện mạnh mẽ vào năm 2018, Google liệu có...
    14 giây trước
  5. Một trong những điều khó chịu nhất về SEO là kết hợp mọi thứ lại với nhau như nó cần. Nếu...
    28 giây trước
  6. SSL (Secure Sockets Layer) là một giao thức bảo mật chuẩn để thiết lập các liên kết mật mã giữa...
    2 giây trước
  7. Hình ảnh, video,... hay bất cứ một hình thức nào kích thích thị giác trong bài viết hay nó còn có...
    2 giây trước
  8. Bạn có biết rằng link nội bộ có ảnh hưởng tương đối lớn trong SEO không? Trong bài viết này,...
    21 giây trước
  9. Nếu là người trẻ bắt kịp xu hướng chắc hẳn bạn sẽ không thể bỏ qua được trào lưu “In...
    8 giây trước
  10. Sau một thời gian nghiên cứu nhiều cách kiếm tiền online từ máy tính cho đến điện thoại (smartphone), có những...
    8 giây trước