# Эмодзи WordPress и Discourse

**URL:** https://meta.discourse.org/t/wordpress-emojis-and-discourse/170298
**Category:** WordPress
**Created:** [16.Ноябрь.2020 20:16:58 UTC](https://meta.discourse.org/t/wordpress-emojis-and-discourse/170298 "2020-11-16T20:16:58Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [16.Ноябрь.2020 20:16:58 UTC](https://meta.discourse.org/t/wordpress-emojis-and-discourse/170298/1 "2020-11-16T20:16:58Z")

</div>

Привет,

У меня настройки WP по умолчанию (если они вообще есть) в отношении эмодзи.  
В WP я написал текст с эмодзи:

 ![image](https://global.discourse-cdn.com/meta/original/3X/d/8/d8af42758ecb4768613c31ff165ce5f0d6d1d679.png)

Wordpress автоматически преобразует их в SVG-эмодзи от Twitter:

 ![image](https://global.discourse-cdn.com/meta/original/3X/1/8/18b23248923b4a707557591223fe6a00ffe4c4f5.png)

Вот сгенерированный HTML-код для первого эмодзи в качестве примера:

```xml
<span class="pq6dq46d tbxw36s4 knj5qynh kvgmc6g5 ditlmg2l oygrvhab nvdbi5me sf5mxxl7 gl3lb2sf hhz5lgdu"><img draggable="false" role="img" class="emoji" alt="👊" src="https://s.w.org/images/core/emoji/13.0.0/svg/1f44a.svg"> </span>

```

Когда пост отправляется в Discourse, HTML немного изменяется:

```xml
<span class="pq6dq46d tbxw36s4 knj5qynh kvgmc6g5 ditlmg2l oygrvhab nvdbi5me sf5mxxl7 gl3lb2sf hhz5lgdu">&#x1f44a; </span>

```

Так как в span вставляется HTML-сущность эмодзи.

В результате получается красиво оформленный пост, но эмодзи не преобразуются в набор эмодзи форума:

 ![image](https://global.discourse-cdn.com/meta/original/3X/0/7/0753b6cc007a52cb9d0b20a5847777c58fcaa263.png)

Есть ли способ, чтобы эмодзи отображались с использованием выбранного набора эмодзи форума?

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [18.Ноябрь.2020 06:14:01 UTC](https://meta.discourse.org/t/wordpress-emojis-and-discourse/170298/2 "2020-11-18T06:14:01Z")

</div>

Это может быть проблема самого Discourse, а не плагина.

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

Я вернусь к вам с ответом по этому вопросу.

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [25.Ноябрь.2020 03:10:26 UTC](https://meta.discourse.org/t/wordpress-emojis-and-discourse/170298/3 "2020-11-25T03:10:26Z")

</div>

@Canapin Привет 🙂 Просто обновление по этому вопросу.

Проблема возникает, когда:

1. Вы включили настройку «полное содержимое поста» в wp-discourse.
2. Вы создали пост в WordPress, содержащий хотя бы одну строку текста до вставки эмодзи.

Сначала, не могли бы вы подтвердить, что в данном случае вы сделали именно так (особенно в части настройки «полное содержимое поста»)?

В таких обстоятельствах плагин wp-discourse отправляет HTML в Discourse, который импортируется как встраиваемая тема. При попытке Discourse обработать HTML во время создания поста могут возникнуть несколько проблем, включая эту. Например, ещё одна возникающая проблема описана здесь: [Fix broken images for posts created by the WP Discourse and RSS plugins](https://meta.discourse.org/t/fix-broken-images-for-posts-created-by-the-wp-discourse-and-rss-plugins/160773).

С технической точки зрения (поскольку, как я знаю, вы разбираетесь в технике 😉 ), вы можете увидеть проблему напрямую, если попробуете использовать соответствующий Ruby-класс Discourse для разбора HTML-строки с юникод-эмодзи.

> **Технические детали проблемы**
>
> ```plaintext
> rails c
> PrettyText.cook("<p>This is the sentence before the emojis</p><div>🦊🦊🦊🦊</div>")
> => "<p>This is the sentence before the emojis</p><div>🦊🦊🦊🦊</div>"
> 
> ```
> 
> в отличие от
> 
> ```plaintext
> rails c
> PrettyText.cook("🦊🦊🦊🦊")
> => "<p><img src=\"/images/emoji/twitter/fox_face.png?v=9\" title=\":fox_face:\" class=\"emoji\" alt=\":fox_face:\"></p>"
> 
> ```

### Что же мы будем делать?

В целом, некоторые проблемы при конвертации полного HTML-содержимого постов WordPress в посты Discourse не являются неожиданными. Запись поста WordPress в Discourse — это просто запись этого поста.

Тем не менее, @simon и я активно работаем над улучшением этого процесса как в wp-discourse, так и в самом Discourse, с соответствующей приоритизацией. Мы сосредоточимся на нескольких других вещах в этом отношении (например, на проблеме с битыми изображениями, упомянутой выше), прежде чем перейдём к этой. Поэтому вам придётся немного подождать официального исправления именно этой проблемы.

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [25.Ноябрь.2020 12:26:26 UTC](https://meta.discourse.org/t/wordpress-emojis-and-discourse/170298/4 "2020-11-25T12:26:26Z")

</div>

> [@angus](#):
>
> Во-первых, не могли бы вы подтвердить, что именно это вы сделали в данном случае (особенно настройку «полное содержимое поста»)?

Действительно, перед первым эмодзи присутствует HTML-код (так как WordPress оборачивает содержимое в теги `<p>`), и настройка «полное содержимое поста» включена.

Спасибо за информацию!

---

<div class="post-metadata">

### Author: ![angus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/angus/32/341715_2.png) [@angus](https://meta.discourse.org/u/angus)
#### Post date: [11.Апрель.2021 23:38:23 UTC](https://meta.discourse.org/t/wordpress-emojis-and-discourse/170298/5 "2021-04-11T23:38:23Z")

</div>

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