База знаний по Open Source
Авторизация
Поиск по базе знаний

Emoji – эмоции или смайлики часто используются на развлекательных сайтах и блогах. Но посмотрев код, который вставляется в каждую страницу WordPress можно задуматься – а стоит ли их использовать?

 <script type="text/javascript">
 window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.2.1\/72x72\/",
"ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.2.1\/svg\/","svgExt":".svg",
"source":{"concatemoji":"http:\/\/owner.grig.loc\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.7.4"}};
 !function(a,b,c){function d(a){var b,c,d,e,f=String.fromCharCode;if(!k||!k.fillText)return!1;
switch(k.clearRect(0,0,j.width,j.height),k.textBaseline="top",k.font="600 32px Arial",a)
{case"flag":return k.fillText(f(55356,56826,55356,56819),0,0),!(j.toDataURL().length<3e3)&&
(k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57331,65039,8205,55356,57096),0,0),
b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57331,55356,57096),0,0),
c=j.toDataURL(),b!==c);case"emoji4":return k.fillText(f(55357,56425,55356,57341,8205,55357,56507),0,0)
,d=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55357,56425,55356,57341,55357,56507),0,0)
,e=j.toDataURL(),d!==e}return!1}function e(a){var c=b.createElement("script");
c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}
var f,g,h,i,j=b.createElement("canvas"),k=j.getContext&&j.getContext("2d");for(i=Array("flag","emoji4")
,c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),
c.supports.everything=c.supports.everything&&c.supports[i[h]],"flag"!==i[h]&&
(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);
c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,
c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function()
{c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),
a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function()
{"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},
f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}
(window,document,window._wpemojiSettings);
 </script>
 <style type="text/css">
img.wp-smiley,
img.emoji {
 display: inline !important;
 border: none !important;
 box-shadow: none !important;
 height: 1em !important;
 width: 1em !important;
 margin: 0 .07em !important;
 vertical-align: -0.1em !important;
 background: none !important;
 padding: 0 !important;
}
</style>

Вот такой дополнительный код вставляется в каждую страницу вне зависимости от того, используете вы их или нет. Лучше отключить. Отключить  Emoji можно вставив в functions.php следующий код:

/* --------------------------------------------------------------------------
 * We dont need Emojii
 * -------------------------------------------------------------------------- */
 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_action( 'admin_print_styles', 'print_emoji_styles' );
 remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
 remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
 remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
 add_filter( 'tiny_mce_plugins', 'disable_wp_emojis_in_tinymce' );
 function disable_wp_emojis_in_tinymce( $plugins ) {
 if ( is_array( $plugins ) ) {
 return array_diff( $plugins, array( 'wpemoji' ) );
 } else {
 return array();
 }
 }
 /* --------------------------------------------------------------------------- */