• sebagutierrez

    (@sebagutierrez)


    Tengo dos sitios web con woocommerce. Uno de ellos hace una búsqueda estricta con los tildes en la búsqueda.
    Por ejemplo, si busco estencil no encuentra el producto esténcil, como si lo hace cuando busco esténcil.
    El formato de todas las tablas y columnas es utf8mb4_unicode_ci y la configuración de wp-config es la misma en amos sitios:

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

    Intenté cambiando DB_CHARSET a utf-8 y también cambiando DB_CHARSET y DB_COLLATE a utf8mb4_unicode_ci.

Viendo 1 respuesta (de un total de 1)
  • Moderador kallookoo

    (@kallookoo)

    Hola,

    Veamos si te entiendo bien.

    Tienes dos sitios A y B, donde en A las busquedas son estricas es decir que busca exactamente lo que escribes como por ejemplo «esténcil» asi que en terminos de programacion tanto «esténcil» como «estencil» son palabras diferentes.

    El cambiar el «DB_COLLATE» o «DB_CHARSET» no tiene ningun efecto ya que una vez creada la base de datos esos valores no se utilizan. Es decir si en la DB tienes alguna variante que no sea «utf8» no tratara los datos de la consulta como «utf-8» y que yo recuerde diria que es donde esta el problema.

    Ahora puedes hacer dos cosas:

    • Mediante un hook, eliminar los acentos con remove_accents antes de realizar la consulta. Como podria ser este; parse_query o pre_get_posts
    • Cambiar en la DB con una previa copia de seguridad el cotejamiento para que sea utf-8 como por ejemplo «utf8mb4_unicode_520_ci» y especificarlo en «DB_COLLATE» para que el WordPress lo sepa.

    Obviamente, he descartado que tengas algun plugin o codigo que modifique las busquedas, pero tambien es posible que sea el motivo.

Viendo 1 respuesta (de un total de 1)
  • Debes estar registrado para responder a este debate.