WordPress : enregistrement impossible avec emojis. Les contenus avec emojis disparaissent après avoir enregistré.
Soit, sur l’éditeur classique de WordPress, le contenu rédigé est perdu après enregistrement. Soit, sur l’éditeur de blocs (Gutenberg), une Erreur 500 peut être observée dans la console du navigateur, après l’enregistrement d’un article, d’une page ou tout autre contenu dans lequel vous auriez inséré un ou plusieurs Emojis.
Cette erreur peut aussi être affichée par WordPress :
La mise à jour a échoué. Impossible d’insérer la publication dans la base de données.

La cause est probablement que votre base de données WordPress contient des Tables MySQL avec d’anciens Interclassements / Collations, comme utf8mb3, ou plus ancien, latin1_swedish_ci.
Comme sur la capture d’écran ci-dessous réalisée dans phpMyAdmin.

La solution pour cela est de convertir la ou les tables dans un charset utf8mb4 comme utf8mb4_unicode_ci ou utf8mb4_unicode_520_ci. Cela peut être réalisé individuellement, table après table, ou globalement sur toute la base de données.
Convertir l’interclassement d’une seule table vers utf8mb4 pour permettre l’enregistrement d’emojis sous WordPress
Pour cela, dans phpMyAdmin, identifiez une table n’ayant pas d’interclassement utf8mb4, ensuite cliquez sur “Structure”, comme sur la capture ci-dessous.

Une fois entrée dans l’analyse de Structure de la table souhaitée, cliquez sur “Opérations” pour y modifier l’interclassement et permettre la sauvegarde d’emojis dans cette table MySQL.

Dans options spécifique à cette table MySQL…
- Sélectionnez un Interclassement utf8mb4 comme utf8mb4_unicode_ci ou utf8mb4_unicode_520_ci.
- Cocher la case permettant de changer la collation de toutes les colonnes de cette table (indispensable)

Nous constatons enfin que l’interclassement de toutes les colonnes de cette table MySQL ont été converties en utf8mb4.

Cependant, si votre base de données MySQL contient de très nombreuses tables dont la collation est erronée, cette opération risque de vous prendre beaucoup de temps. Donc, si vous pouvez vous permettre d’unifier toutes vos tables MySQL dans un même interclassement utf8mb4_unicode_520_ci par exemple, voyez le point suivant pour réaliser cette opération en une seule fois pour toute la base de données.
Convertir l’interclassement d’une base de données (toutes les tables) vers utf8mb4 pour permettre l’enregistrement d’emojis sous WordPress
Encore une fois, l’opération sera à réaliser dans phpMyAdmin. Ensuite > $database > Opérations > Faites défiler la fenêtre jusqu’à la section Interclassement et choisissez le Charset vers lequel Upgrader vos Tables MySQL…

Vérification complémentaire du DB_CHARSET de WordPress dans wp-config.php
Une fois toutes vos tables converties en utf8mb4, pensez également à vérifier votre fichier wp-config.php, à la racine de votre site WordPress, pour y vérifier que le Charset sélectionné est bien cohérent…

Aller plus loin en continuant votre lecture…
Cela ne fonctionne toujours pas ? Vérifiez les modules PHP !
Chez EasyHoster, par défaut, nd_mysqli est activé.

Cependant, si vous êtes chez un autre hébergeur cPanel, peut-être avez-vous le module PHP mysqli activé par défaut ?
Si c’est le cas, il sera nécessaire de désactiver mysqli et d’activer nd_mysqli en complément des précédentes actions effectuées dans votre base de données.