Problema de configuración en WordPress - ya sea programas de frontend o backend no puede manejar umlauts

Tengo un comportamiento muy extraño en un sitio web de WordPress.

Si define el Charset en wp-config. Php como:

define('DB_CHARSET', 'utf8');

El frontend del sitio web está casi bien, pero:

  1. Imágenes con umlauts en URL no se encuentran
  2. En las direcciones de The backend WooCommerce muestra "Strañe" en lugar de "Straße", "MÃ1⁄4ller" en lugar de "Müller" y así sucesivamente
  3. Yoast Descripciónes y títulos tienen el mismo problema que está en otros lugares también.

Si no defino un charset en el wp-config. Php como:

//define('DB_CHARSET', 'utf8');

...el backend y las imágenes están bien, pero hay estos diamantes con marcas de preguntas en frontend por todo el lugar. Por ejemplo: "F r den fr hlichen S nger J rg M ller"

Todo esto sucedió desde un intento de actualización de WordPress y plugins de hoy y restaurar una copia de seguridad de ayer o antes no lo resuelve.

El texto llano, que está destinado a ser exhibido en el frontend, tiene el regular ä,ö,ü,... en las tablas de bases de datos, así como los títulos y descripciones de Yoast en sus tablas.

La información de la dirección y las URL de la imagen se almacenan con "ä, ö, Ã1⁄4,..."

Así que si definio charset, algo está mal, si no lo hago, algo también está mal. No sé cómo resolver esto desde aquí.

¿Alguna sugerencia?


Hoster: Cloudways - PHP: 7.4 - DB: Maria DB 10.2

Que Tema y cuál versión de WordPress no importa...

Pregunta hecha hace 3 años, 5 meses, 3 días - Por techtrailblazer8d2c


2 Respuestas:

  • El problema que estás experimentando parece estar relacionado con la configuración incorrecta del juego de caracteres en WordPress y posiblemente en la base de datos.

    Para solucionar este problema y poder manejar umlauts correctamente tanto en el frontend como en el backend, te recomendaría lo siguiente:

    • En tu archivo wp-config.php, asegúrate de tener la siguiente configuración para el juego de caracteres:
    php
    define('DB_CHARSET', 'utf8');
    define('DB_COLLATE', '');
    

    Esto asegura que WordPress utilice el conjunto de caracteres UTF-8 al interactuar con la base de datos.

    • Verifica la configuración de tu base de datos para asegurarte de que esté utilizando el juego de caracteres correcto. Puedes hacerlo a través de la configuración de tu base de datos o mediante consultas SQL como ALTER DATABASE.
    • Si al definir el juego de caracteres en wp-config.php sigues experimentando problemas en el frontend con caracteres especiales como ä,ö,ü, etc., también podrías intentar añadir la siguiente línea en el archivo wp-config.php:
    php
    define('DB_CHARSET', 'utf8mb4');
    

    El uso de utf8mb4 permite almacenar una gama más amplia de caracteres Unicode, lo que puede ser útil para manejar correctamente los umlauts y otros caracteres especiales.

    Una vez realizados estos ajustes, limpia la caché de tu sitio web y verifica si el problema persiste. Con suerte, con estas configuraciones deberías poder manejar los umlauts de manera adecuada tanto en el frontend como en el backend de tu sitio web de WordPress.

    Espero que esta información te sea de ayuda. ¡Déjame saber si necesitas más asistencia!

    Respondida el Dec 18, 2020 a las 20:42 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Problema:

    WordPress no maneja correctamente los caracteres especiales (umlauts) debido a una configuración de codificación de caracteres inconsistente entre la base de datos, la interfaz y la salida del frontend.

    Posibles soluciones:

    • Verifica la configuración de la base de datos:
      <ul><li>Asegúrate de que la base de datos esté configurada para usar la codificación UTF-8. Esto se puede verificar en el panel de control de la base de datos (por ejemplo, phpMyAdmin).</li></ul>
    
    • Define la codificación en wp-config.php:
      <ul><li>Agrega la siguiente línea a tu archivo wp-config.php:</li></ul>     <pre><code>
     define('DB_CHARSET', 'utf8');
     </code></pre>
      <ul><li>Asegúrate de que la codificación coincida con la configuración de la base de datos.</li></ul>
    
    • Verifica la configuración del servidor:
      <ul><li>Verifica la configuración de codificación del servidor web (por ejemplo, Apache o Nginx) para asegurarte de que coincida con la codificación de la base de datos y wp-config.php.</li></ul>
    
    • Actualiza la tabla de opciones:
      <ul><li>Ejecuta la siguiente consulta SQL en la base de datos:</li></ul>     <pre><code>
     UPDATE wp_options SET option_value = REPLACE(option_value, 'ä', 'ä')
     WHERE option_name = 'blogname' OR option_name = 'blogdescription';
     </code></pre>
      <ul><li>Esto reemplazará las entidades HTML codificadas con los caracteres reales.</li></ul>
    
    • Limpia la caché:
      <ul><li>Si usas un complemento de caché, borra la caché y vuelve a cargar el sitio web.</li></ul>
    

    Pasos adicionales:

    • Reinicia el sitio:
      <ul><li>Vuelve a instalar WordPress y los complementos esenciales para empezar de cero.</li></ul>
    
    • Contacta al proveedor de alojamiento:
    • Si todo lo demás falla, comunícate con tu proveedor de alojamiento y solicita ayuda para solucionar el problema.

    Respondida el Dec 18, 2020 a las 20:53 - por Gemini

    Votos positivos: 0 | Votos negativos: 0