Как заменить стандартные смайлы WP на свои
Хотите заменить стандартные смайлы WordPress на свои произвольные, при этом без плагина и необходимости править файлы движка? Используйте представленный в статье код.
Подобное решение позволит сохраняться всем изменениям даже при обновлении WordPress, т.к. код будем помещать в файл шаблона.
Недавно публиковал статью Как добавить в форму комментариев смайлы без плагина. Один из читателей блога обратился вчера с просьбой не только внедрить их на сайт, но и заменить стандартные на свои - произвольные, под тему сайта.
Вариант с правкой движка не подходил (по понятной причине). Поэтому пришлось искать решение, с которым сейчас делюсь, чтобы и для себя была памятка на будущее.
Открываем functions.php (расположен в папке с шаблоном) и сразу после <?php (с новой строки) вставляем код:
// Ставим свои смайлы
add_filter('smilies_src','custom_smilies_src', 1, 10);
function custom_smilies_src($img_src, $img, $siteurl){
return 'https://mojwp.ru/wp-content/themes/mojwpthemes/images/'.$img.$type.'';
}
global $wpsmiliestrans;
$wpsmiliestrans = get_option('clcs_smilies');
if ($wpsmiliestrans == false) {
$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',
// This one transformation breaks regular text with frequency.
// '8)' => 'icon_cool.gif',
':(' => 'icon_sad.gif',
':)' => 'smiles.png',
':?' => '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',
);
}
В представленном коде я специально скопировал все смайлы, которые поддерживает WordPress. Если какие-то на вашем сайте не будут использоваться, то можете не менять.
Обращаю внимание: вставив данный код, старые смайлы уже не будут работать на сайте. В идеале все же для каждой строки проставить свою картинку.
Если не хотите копаться в коде, то используйте плагин Kama WP Smiles, который внедрит на ваш сайт смайлы в стиле мессенджера QIP. Минимум настроек и вы получаете требуемый результат.
Поясняю что в коде править
Для начала обратите внимание, что я указал путь до папки, где лежат смайлы. Вы можете указать любой произвольный путь.
Далее пошли строки вида:
':-(' => 'icon_sad.gif',
Вначале в кавычки берется сам символьный вид смайла, а затем прописано название картинки с разрешением icon_sad.gif.
Все что вам нужно сделать - это:
- закачать свои произвольные смайлы на сервер
- указать путь до папки со смайлами в коде выше
- прописать названия смайлов в соответствующих строках
Имейте ввиду, что большого размера смайлы будут портить внешний вид строки (появятся большие междустрочные интервалы). Поэтому подберите сразу нужного размера картинки, либо смените их размер через PhotoShop, или IrfanView.
Минута на саморазвитие
Являетесь поклонником современных hi-tech технологий? Тогда вы идете в ногу со временем. Молодцы.