Hola @viajesconsolera,
Este error puede ser por varios motivos. Al estar copiando y pegando directamente en el editor de WordPress puede que esté pegando etiquetas o estilos que impidan el guardado de la entrada. Asegúrate de limpiar los textos que vayas a pegar desde Word o cualquier aplicación que añada formato a los textos, usa solución para esto es la opción de pegar sin formato.
Otra posible causa del error es la codificación de la base de datos, comprueba que sea por ejemplo «utf8mb4», ya que si la codificación no es mb4 no será capaz de guardar los emojis. Para solucionar esto puedes utilizar el siguiente filtro comprobando antes si no tiene la codificación utf8mb4.
add_filter( 'sanitize_text_field', 'wp_encode_emoji' );
Si no estás familiarizado con el código puedes utilizar este plugin para añadir este tipo de cadenas de código: https://es.wordpress.org/plugins/code-snippets/
Te adjunto la documentación oficial para esto para que puedas ver ejemplo de uso: https://developer.wordpress.org/reference/functions/wp_encode_emoji/
Igualmente si lo que te he comentado no soluciona el error, ¿podrías compartirnos un ejemplo del código que estás intentando guardar?
Un saludo!
¡Hola! Yo estoy en la misma situación, desde hace una semana me es imposible actualizar nada (ni páginas ni entradas) que contengan emojis. Y la verdad es que preguntando por comunidades nadie sabe qué puede ser. Los emojis los hemos probado de poner mediante copia pega de Whatsapp, mediante los comandos de Mac (Ctrl + Cmd + Espacio) e incluso copiando de la página Unicode.org o emojipedia.
He desactivado todos los plugins excepto Code Snippets y Woocommerce (tenemos una web de formación mediante suscripción y me da miedo desactivarlo) y sigue igual, sin poder actualizar.
En functions.php he puesto el código de filtro que comentas, pero no cambia nada.
¿Alguna idea más? Estamos algo desesperados…
Muchísimas gracias.
@viajesconsolera
@pacomarchante
¿Habéis encontrado alguna solución? Por mucho que buscamos en foros no encontramos nada… snif.
¡Hola!
No, lo siento. Lo que he hecho es quitar los emojis de las entradas que tenga que actualizar. Y no poner ninguno para publicar entradas nuevas… 🙁
He realizado varias pruebas y creo que, como ha comentado @pacomarchante , es un problema relacionado con el cotejamiento.
En la pruebas, me dejaba editar la entrada pero los emojs se convertían en ????? al publicar o actualizar la entrada.
Entonces, me he ido a PhPMyAdmin, he seleccionado la base de datos y he ido a la pestaña «Operaciones». En la sección «Cotejamiento» he seleccionado «utf8mb4_unicode_ci» y he marcado tanto «Modificar el cotejamiento de todas las tablas» como «Cambiar la intercalación de todas las columnas de las tablas».
A partir de ese momento, los emojs ya funcionaban bien.
MUY IMPORTANTE: Hacer copia de seguridad de la base de datos antes de modificar el cotejamiento. Y revisar el archivo wp-config.php, en concreto que la línea siguiente sea así:
define( 'DB_CHARSET', 'utf8mb4' );
Y antes de modificar el cotejamiento, hablar con el soporte de vuestro hosting y preguntarles si podéis hacer le cambio.
De hecho, es muy recomendable hacer primero una prueba en local.
Gracias por la respuesta @almendron pero sigo con el mismo problema 😭
He ido a PhPMyAdmin y en «Cotejamiento» ya tenía la opción utf8mb4_unicode_ci seleccionada…
También he cambiado la línea de código en wp-config.php. Tenía puesto:
define(‘DB_CHARSET’, ‘utf8’); y lo he cambiado a define(‘DB_CHARSET’, ‘utf8mb4’); pero todo sigue igual. Sigo sin poder actualizar o guardar entradas o páginas con emojis.
Voy a escribir a mi Servidor con lo que me pones tú, a ver si ellos me saben dar el error, pero no tengo muchas esperanzas….
Os comento algo en cuanto sepa. Mil gracias.
No es el cotejamiento de la tabla, que puedes tener ya como «utf8mb4_unicode_ci», sino los campos como es el de wp_content. Por eso decía de seleccionar tanto «Modificar el cotejamiento de todas las tablas» como «Cambiar la intercalación de todas las columnas de las tablas». Esta última opción es la que modifica el cotejamiento de los campos de las tablas.
Y sí, una vez cambiado, el CHARSET debe ser «utf8mb4».
Ya he encontrado esas casillas en el phpMyAdmin, pero todo sigue igual. Sigo sin poder guardar entradas con emojis… 😩</img>
Ya no se que hacer… y mi servidor no me da soluciones. A ver si a alguien más le ha pasado y puede comentar algo.
Gracias igualmente @almendron
De nada. La verdad es que yo tampoco he encontrado nada al respecto.
Lo he solucionado editando el cotejamiento no de la base, ni de la tabla, sino del CAMPO post_content o post_title.
Esto permite agregar emojis en texto y/o título de nuestra publicación.
Entrando a Phpmyadmin/mibasededatos/Estructura/post_content/lapiz Editar. Ahí elijo alguna de las variantes de utf8mb4.
Hacemos lo mismo para post_title.
Espero que les sea útil.
Saludos!
-
Esta respuesta fue modificada hace 1 año, 2 meses por lalejon.