Всем привет.
В этом руководстве я вам расскажу как под себя настроить бесплатное дополнение Smilies in Emoji.
Что сделаем:
- Уберем ненужные эмодзи
- Добавим нужные
- Отключим вывод в форме комментариев - если вам он там не нужен
Вы должны уметь:
- знать и уметь работать с functions.php вашей темы. т.е. знать основы как вписывать сниппеты (маленькие фрагменты кода) в вашу вордпресс тему. Почитайте: "Куда мне вставить этот код? (и стили)"
1. Уберем ненужные эмодзи
Чтобы убрать те эмодзи, что вам не нужны - вы должны открыть файл (например из архива на своем ПК) index.php
дополнения Smilies in Emoji и подсмотреть что же вам не нужно. Там в комментариях подписано всё. Функция siem_global_emoji()
содержит массив эмодзи и с 20-й строки их там много.
Конечно, вы можете стереть или закомментировать там прям в файле (при условии - что вы открыли этот файл непосредственно с сайта, а не с ПК) и ненужный исчезнет. Но это не практично - при первом обновлении дополнения всё вернется как было или даже лучше и вам придется повторять процедуру.
Поэтому пойдем правильным путём - воздействуем на фильтр и уберем ненужный, вписав сниппет в functions.php вашей активной ВП темы.
Обратите внимание: некоторые смайлы и эмодзи помечены как дубли - в таком случае чтобы достичь нужного результата убирать и дубли нужно. В массиве слева ключи - они имеют как привычное нам текстовое представление из набора скобок, двоеточий - представляющие смайлы, так и unicode представление эмодзи (Его код).
Примеры:
1. Уберем красного злого:
Он помечен у нас в коде комментарием как "красный злой" и "красный злой дубль"
сниппет:
add_filter('siem_emoji','otfm_siem_remove_emoji',20); function otfm_siem_remove_emoji($smilies){ unset( $smilies[':-x'], $smilies[':x'] ); return $smilies; }
- мы стерли из массива ненужный нам смайл используя php функцию unset.
Через запятую добавляйте ненужный ключ массива.
2. Уберем красного злого из примера выше + уберем эмодзи какашки, ёлки и всё новогоднее - дед морозы, снеговики, снежинки. Зима не близко.
Дополним функцию - теперь она выглядит так:
add_filter('siem_emoji','otfm_siem_remove_emoji',20); function otfm_siem_remove_emoji($smilies){ // текстовые убераем так unset( $smilies[':-x'], $smilies[':x'] ); // а unicode представление так: $smilies = array_diff( $smilies, array('🎅', // санта '☃️', // снеговик '❄', // снежинка '🎄', // наряженная елка '🌲', // елка '💩' // какашка ) ); return $smilies; }
Мы видим что они исчезли:
Добавим нужные эмодзи
Эмодзи великое множество и сделать набор идеальным для всех сложно. В этом примере вы добавите себе некоторые отсутствующие эмодзи.
Небольшая ремарка - я не уверен что вордпресс со своих серверов поддерживает их все, поэтому если какой-то эмодзи не появился - значит сервера вордпресс по данному коду не отдают нужный svg или png файл. Но я подобного не замечал.
Смотрим по этим адресам:
https://apps.timwhitlock.info/emoji/tables/unicode
https://emojipedia.org/twitter/
Два набора с которых я и брал эти эмодзи.
По первому адресу смотрим колонку Unicode понравившегося вам эмодзи - там его код. И колонка Twitter - как он будет показываться на современных операционнных системах и браузерах. Вордпресс использует твиттер js-библиотеку.
На примере первого эмодзи:
Unicode U+1F601
а у нас в массиве ключ и значение такое:
$smilies['😁'] = "😁"; // смех во все зубы
находите общую часть? Тут тест на внимательность
Значит по урл, что я вам дал, берем только 1F601
часть, а вставляем его между &#x
и ;
В общем потренируетесь на кошках. Пробуйте по одному - сохраняйте в сниппете и проверяйте в списке эмодзи что он добавился. Ну и я в примере покажу на кошках:
Выбрал я там "CAT FACE"
Теперь надо в фильтр добавить его (помните, выше показывал, между какими символами вставлять?)
сниппет:
add_filter('siem_emoji','otfm_siem_add_new_emoji',20); function otfm_siem_add_new_emoji($smilies){ $smilies['🐱'] = "🐱"; // cat face return $smilies; }
И так строка за строкой наполняйте массив эмодзи своими наборами. Все новые добавятся в конец массива. В том порядке что вы укажете.
Отключим вывод в форме комментариев - если вам он там не нужен
Если у вас стоит дополнение comments tuner, или вы в форме комментариев выводите еще какие смайлы и вам блок эмодзи, что дает дополнение, не нужен - то можно убрать его из формы комментариев таким сниппетом:
add_action( 'init', 'otfm_siem_remove_commentform_emoji' ); function otfm_siem_remove_commentform_emoji(){ remove_action( 'comment_form_logged_in_after', 'siem_comment_smiles', 30 ); }
Вот так легко работать с простым, но необходимым дополнением. Возможно тут появятся еще какие методы работы с дополнением, по мере появления полезных вопросов.
Огромное благодарю за подробное разъяснение!
1700 эмодзи вы можете найти по ссылке http://www.unicode.org/emoji/charts/full-emoji-list.html
А то автор по первой ссылке видать замучался дополнять список и сказал что всё)) он эту страницу чисто для истории оставит. Я кстати оттуда дополнил еще более 2 десятка эмодзи в версии v1.1
То, что искал. Спасибо, отличный материал!