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

Всем привет!

В этой статье вы уважаемый читатель узнаете, как поставить смайлы без плагина на 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, вы же добавляйте смайлы в функцию, приведенную выше «Возвращаем сопоставление символов файлам».

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

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



Интересный и полезный контент

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

  1. Юлия

    Я решила со смайликами не заморачиваться. Долго не могла привести их в чувтво после обновления. И координально решила проблему — удалила их совсем. Поживу без них. Будет скучно — верну обратно. ❓

    1. Алексей Кобзарев Автор записи

      Я тоже об этом думал, но потом решил, что без них будет скучно. 🙂

  2. Василий Блинов

    Тоже всё хочу смайлы поставить, но никак руки не доходят. Сохраню статью, позже реализую.

    P.S. Крутые смайлы 😉 😈

  3. Александр Нечаев

    За все время первый нормальный пост на эту тему!
    Спасибо автору 😉

  4. Александр Нечаев

    Возникли трудности…
    После внесения кода выводиться ошибка! Пишет что вот в этой строчке.
    $mythemes = get_template();
    $mythemes заменяю на название своей темы.
    return site_url( «/wp-content/themes/$mythemes/smilies/{$img}…..
    И здесь тоже пишу название своей темы, больше ни чего не меняю.
    Все изменения вношу в functions.php в шаблоне блога.

    Подскажите в чем может быть проблема??? 😯

    1. Алексей Кобзарев Автор записи

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

  5. Алексей

    Здравствуйте Алексей!
    Спасибо за интересную статью…
    Наличие красочных смайликов в комментариях,
    да и вообще в переписке очень важно в наше время!
    Ранее вы оставляли комментарий на моем блоге
    и указали на наличие редиректа на сторонний сайт
    если можно укажите с на какой странице присутствует ссылка
    Заранее благодарен!
    Можете отписаться в обратную связь..

  6. Сергей Грицюк

    У меня в новой теме нет выбора смайлов, но они отображаются в комментарии графически, если их набрать символами.

    Алексей, у Вас в арсенале есть код, после внедрения которого комментатор мог бы из панели комментатора добавлять изображения?

    1. Алексей Кобзарев Автор записи

      У меня нет, но я видел такую функцию на блоге Александра Каратаева, спросите у него. 🙂

  7. Павел

    Спасибо, сейчас делаю откат файлов и базы после этого обновления и попыток наладить смайлы изменением файлов. Попробую снова обновится и ваш метод с функцией. 😉

    1. Павел

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

  8. Андрей

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

    1. Алексей Кобзарев Автор записи

      Как мне сказала одна моя читательница: «Для всех мил не будешь, делай как тебе нравится». 🙂

  9. Анна

    У меня на блоге самый стандартный набор смайликов. На твоём блоге Алексей я впервые увидела такие огромные смайлы.

    1. Алексей Кобзарев Автор записи

      В статье есть ссылка, где можно подобрать смайлики любых размеров и видов. 😉

  10. bytrina

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

  11. София

    В моей теме ни функшион, ни в комментах нет тегов textarea, не сталкивались ли с таким?

  12. Vlad

    Привет.
    Обновил в очередной раз движок — версия 4.4. и на этот раз смайлики заменить вот так просто уже не получилось…

    Вспомнил, что у тебя статья есть, решил воспользоваться. Все получилось, правда смайлики небольшого размера…

    Потом немного решил поэкспериментировать и вообщем убил файл functions. А на нем же весь блог держится — микроразметка, закрытие ссылок: статьи, комменты, топ ком…
    Вот такой вот выдался у меня денек из-за каких-то там смайликов, хорошо хоть все решилось)

    1. Алексей Кобзарев Автор записи

      Привет!
      Ты явно что-то делал не по статье, ведь у меня тоже 4.4 стоит, но как бы там не было, я рад за тебя, за то что завершилось успехом.

Добавить комментарий

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