Как поставить смайлы без плагина и зафиксировать их в шаблоне

Всем привет!

В этой статье вы уважаемый читатель узнаете, как поставить смайлы без плагина на WordPress блог и как зафиксировать их навеки, чтобы при обновлении движка смайлики никуда не девались и не заменялись каким-то непонятным кодом. Читайте далее, узнаете, как поставить смайлы без плагина и закрепим их в шаблоне…

Почему вредно ставить плагин – дело в том, что большое количество плагинов начнут замедлять работу блога, а это плохо отражается на SEO продвижении (чем быстрее блог, тем выше позиции в выдаче). Читайте «Как ускорить блог». Плагины ставят свои таблицы в MySQL, которые потом приходиться чистить, так как они влияют на скорость и при удалении плагин их оставляет в базе данных.

Меню:

  1. Кому нужны смайлы
  2. Как их включить
  3. Решение проблемы
  4. Фиксация смайликов

Сначала думаю, нужно описать зачем вообще нужно устанавливать смайлы без плагина, а потом перейдем к практике.

Зачем нужны смайлики на блоге

Во-первых, смайлы оживляют ваш блог – предают ему отличный, который не может не понравится посетителям. На сайте могут быть интересные картинки, что тоже оживляет и делает его интересней, это очень важно: «Веб-ресурс должен быть не только полезным, делайте ИНТЕРЕСНЫМ свой ресурс.

Во-вторых, придают изящности комментариям. Выражение мыслей и чувств посетителей в комментариях конечно самое главное, но намного интереснее их читать или просто просматривать, когда там улыбаются, прыгают, корчат рожицы смайлики.

Как включить смайлы WordPress без плагина

Дело в том, что смайлики не нужно добавлять, прописывать какие-то функции! Они уже есть в движке, предусмотрены разработчиками WordPress. Все что нужно, это включить смайлы без плагина. Как раз это мы с вами сейчас сделаем. Для начала хочу показать, как выглядят стандартные смайлы на WordPress блоге.

Как поставить смайлы без плагина

Если честно, то они мне не очень нравятся, и я установил свои, это можете сделать вы, я покажу как. Кликните по этой ссылке, выберите себе подходящие смайлики и перетаскивайте их в специальную папку заменив старые, путь:

Wp-includes/images/smilies

Теперь у нас остался последний шаг! Мы добавим небольшой скрипт в файл нашего шаблона. Заходим в корень блога по следующему адресу:

Wp-content/themes/название темы

Находите файл, отвечающий за комментарии, обычно это comments.php. Теперь нам нужен тег textarea, найдите его просто нажав на клавиатуре CTRL+F (откроется поиск), вставляйте в него слово textarea и жмите ENTER.

<textarea name="comment" id="comment" rows="10" cols="1"></textarea>

После второго слова textarea (он называется закрывающим тегом), вставляйте скрипт:

<script>
function addsmile($smile){
 document.getElementById('comment').value=document.getElementById('comment').value+' '+$smile+' ';
}
</script>
<?php
global $wpsmiliestrans;
$dm_showsmiles = '';
$dm_smiled = array();
foreach ($wpsmiliestrans as $tag => $dm_smile) {
 if (!in_array($dm_smile,$dm_smiled)) {
 $dm_smiled[] = $dm_smile;
 $tag = str_replace(' ', '', $tag);
 $dm_showsmiles .= '<img src="'.get_bloginfo('wpurl').'/wp-includes/images/smilies/'.$dm_smile.'" alt="'.$tag.'" onclick="addsmile(\''.$tag.'\');"/> ';
 }
}
echo '<div style="width:100%; margin-left:0px; margin-right:0px;">'.$dm_showsmiles.'</div>';
?>


После сохранения, ваши ожидаемые смайлы без плагина появятся в комментариях при перезагрузке страницы.

Далее, я хочу поделится с вами, как поставить смайлы WordPress блог на все время, чтобы они не слетали при обновлении движка и не заменились чем-то другим, как это произошло с обновлением WordPress 4.2.2. Читайте дальше, и вы узнаете, как с легкостью поставить смайлы или нерушимые смайлы.

Эта статья подойдет для:

  • Тех, кто не хочет парится с загрузкой смайликов
  • Тех, кто столкнулся с проблемой, описанной ниже

С проблемой замена смайлов столкнулись все, кто обновляется до последней версии движка, но я нашел решение данной проблеме и этим решением поделюсь с вами, узнаете, как поставить смайлы на века!

Если вы не обновляете свой движок, то очень рискуете заразить свой сайт! По результатам исследования было выяснено, что обновление CMS снижает риск заражения в два раза. При заражении сайта или блога поисковые системы Яндекс и Google заносят его в черный список, после чего владельцам очень тяжело из него выйти, даже вылечив свой ресурс. Можете почитать подробно об этом, с первоисточника, здесь, а также узнать о других интересных CMS исследованиях.

Для тех блоггеров, которые не знают о изменениях добавившие проблему в нашу жизнь, я вкратце расскажу, а после перейдем к установке смайликов на всегда, пока существует шаблон.

С обновлением WordPress 4.2.2 у всех владельцев блогов пропали смайлы! Вместо них появились пустые изображения, их видите ниже:

Как поставить смайлы навсегда

Кроме этих пустышек появились смайлы формата PNG. Лично у меня всегда стояли смайлики GIF. Почему разработчики WordPress добавили лишние имена и расширения, я не знаю.

Как решить проблему со смайликами

Сначала, я пробовал решить этот вопрос восстановлением файла comment-template.php, он находится по адресу wp-includes. После загрузки моих любимых смайлов в папку images/smilies, смайлики опять начали прыгать в комментариях моих читателей, но в корне этот вопрос был не решен, ведь где гарантия, что следующее обновление будет исправлено?

Читайте: «Создать копию базы данных и сделать резерв сайта«.

Я не думаю, что это какой-то глюк программ разработчиков движка или недоработка профессиональных программистов! Такой CMS движок, как WordPress не могли доверить обновлять не серьезным людям, вы как думаете?

Я считаю, что такое новшество не ошибка. А новое разработка, только не понятно зачем и для чего. Но да ладно, сейчас мы решим с вами эту проблему в два счета.

Установка смайлов навсегда

Еще у нас постоянно была запарка, загружать смайлики в корень движка при обновлении. После проделанных не сложных действий далее, мы закрепим наши смайлики на веки или пока будем пользоваться конкретным шаблоном. Сейчас идите в корень своего блога по адресу:

Wp-content/themes/название темы

Короче заходите в свой шаблон! Внутри него создаем папку под названием smilies и загружайте в нее все ваши смайлики. Теперь последнее действие, это добавление функции для отключения стандартов внедренные разработчиками – мы внесем свои стандарты!

Открывайте файл functions.php и в самый конец, перед тегом?>, добавляйте код:

// Задаем новое расположение смайлов по-умолчанию www.advdk.com
function classic_smilies_src( $old, $img ) {
 $mythemes = get_template();
 return site_url( "/wp-content/themes/$mythemes/smilies/{$img}", __FILE__ );
}
 
// Возвращаем сопоставление символов файлам
add_action( 'init', 'classic_smilies_init', 1 );
function classic_smilies_init() {
 global $wpsmiliestrans;
 $wpsmiliestrans = array(
 ':mrgreen:' => 'icon_mrgreen.gif',
 ':neutral:' => 'icon_neutral.gif',
 ':twisted:' => 'icon_twisted.gif',
 ':arrow:' => 'icon_arrow.gif',
 ':shock:' => 'icon_eek.gif',
 ':smile:' => 'icon_smile.gif',
 ':???:' => 'icon_confused.gif',
 ':cool:' => 'icon_cool.gif',
 ':evil:' => 'icon_evil.gif',
 ':grin:' => 'icon_biggrin.gif',
 ':idea:' => 'icon_idea.gif',
 ':oops:' => 'icon_redface.gif',
 ':razz:' => 'icon_razz.gif',
 ':roll:' => 'icon_rolleyes.gif',
 ':wink:' => 'icon_wink.gif',
 ':cry:' => 'icon_cry.gif',
 ':eek:' => 'icon_surprised.gif',
 ':lol:' => 'icon_lol.gif',
 ':mad:' => 'icon_mad.gif',
 ':sad:' => 'icon_sad.gif',
 '8-)' => 'icon_cool.gif',
 '8-O' => 'icon_eek.gif',
 ':-(' => 'icon_sad.gif',
 ':-)' => 'icon_smile.gif',
 ':-?' => 'icon_confused.gif',
 ':-D' => 'icon_biggrin.gif',
 ':-P' => 'icon_razz.gif',
 ':-o' => 'icon_surprised.gif',
 ':-x' => 'icon_mad.gif',
 ':-|' => 'icon_neutral.gif',
 ';-)' => 'icon_wink.gif',
 '8O' => 'icon_eek.gif',
 ':(' => 'icon_sad.gif',
 ':)' => 'icon_smile.gif',
 ':?' => 'icon_confused.gif',
 ':D' => 'icon_biggrin.gif',
 ':P' => 'icon_razz.gif',
 ':o' => 'icon_surprised.gif',
 ':x' => 'icon_mad.gif',
 ':|' => 'icon_neutral.gif',
 ';)' => 'icon_wink.gif',
 ':!:' => 'icon_exclaim.gif',
 ':?:' => 'icon_question.gif',
 );
 add_filter( 'smilies_src', 'classic_smilies_src', 10, 2 );
 
// Отключаем загрузку скриптов и стилей Emoji
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', 'classic_smilies_rm_tinymce_emoji' );
add_filter( 'the_content', 'classic_smilies_rm_additional_styles', 11 );
add_filter( 'the_excerpt', 'classic_smilies_rm_additional_styles', 11 );
add_filter( 'comment_text', 'classic_smilies_rm_additional_styles', 21 );
}
 
// Отключаем Emoji в визуальном редакторе TinyMCE
function classic_smilies_rm_tinymce_emoji( $plugins ) {
 return array_diff( $plugins, array( 'wpemoji' ) );
}
 
// Убираем размеры смайликов равные 1em (новые задаются для класса .wp-smiley)
function classic_smilies_rm_additional_styles( $content ) {
 return str_replace( 'class="wp-smiley" style="height: 1em; max-height: 1em;"', 'class="wp-smiley"', $content );
}


Сохраняйте изменения! После этих несложных движений посмотрите на страницы своего блога. Теперь вы поставили смайлы, которые не нужно постоянно кидать в папку wp-includes после обновления CMS.

Установили смайлы на блоге навечно! Только после смены дизайна, конечно стоит повторить данное действия еще раз. Если вам этих смайликов мало, то читайте статью о том, как их добавить: «Как добавить количество смайликов на WordPress блог».

Внимание: в той статье рассказано о файле comment-template.php, вы же добавляйте смайлы в функцию, приведенную выше «Возвращаем сопоставление символов файлам».

На этом у меня все. Надеюсь ваша проблема решена? Подписывайтесь на обновления моего блога, нажав здесь, чтобы ничего не пропустить. До встречи!

С уважением, Алексей Кобзарев

30 комментариев

Ваш комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *