Публикация в группе: Otshelnik-Fm - мои работы (код, плагины, дополнения, статьи и руководства)

Категории группы: Дополнения Wp-Recall

Всем привет.
В этом руководстве я вам расскажу как под себя настроить бесплатное дополнение 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 );
}

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

8

Автор публикации

не в сети 4 часа

Вова (Otshelnik-Fm)

4 503
Живой, бодрый, полон идей!
Комментарии: 2252Публикации: 250Регистрация: 27-01-2013Продаж/Покупок: 0/0