|
|
Antecedentes del problema:
Estoy desarrollando un sitio y quiero que los productos traducidos mantengan la misma estructura de categorías que los productos originales en español. Actualmente, los productos en español tienen una categoría padre específica, pero las traducciones no están asignando la misma categoría padre, lo que resulta en URLs diferentes. Por ejemplo, un producto en español tiene como categoría padre 'relojes', pero la traducción en inglés ha asignado 'tudor for men' como categoría padre.
Síntomas:
El campo de categoría padre no está disponible en el traductor WPML, lo que resulta en URLs generadas aleatoriamente para los productos en inglés.
Preguntas:
¿Cómo puedo corregir las categorías padre de los productos en inglés para que coincidan con las de los productos en español?
¿Cómo puedo realizar redirecciones 301 de las URLs actuales a las nuevas corregidas?
|
|
|
Hola,
Prueba lo siguiente:
❌ Por favor, antes que nada: haz un backup de tu sitio ❌
- Ve a WPML > Taxnonomy Translation
- Selecciona la cateogoría de producto que necesites
- Haz click en la pestaña "Hiearchy Syncronization"
- Si ves los cambios sugeridos correctos, haz click en Update Taxonomy Hierarchy
- Finalmente, haz click en Synchronize Product categories assignment in content
Saludos cordiales,
Otto
Si el problema persiste:
Para brindarle un mejor soporte, te agradecería que me enviaras la información de depuración de WPML. Puede seguir esta guía para encontrarlos: https://wpml.org/faq/provide-debug-information-faster-support/
|
|
|
Hola Otto,
Gracias por su respuesta
Las categorias estan traducidas correctamente, el problema es otro
la categoria por defecto en español, no la hereda la traduccion y esta generando una url resultante de combinar otra categoria por defecto
en español tienes algo como /tienda/relojes/tudor/nombre-del-producto y en inglés, como no se elige el parent category genera algo como
/en/shop/watches/tudor/tudor-for-men/name-of-product
Gracias
|
|
|
Hola,
Eso es lo que debería corregir los pasos que te envié. Los has probado y no solucionan el problema?
Saludos cordiales,
Otto
|
|
|
Hola Otto,
No eso no corrige el problema.
Lo había obviado porque las categorías de producto estan traducidas y sincronizadas
Después de hacerlo sigue igual:
Te paso un ejemplo:
Español:
enlace oculto
Inglés:
enlace oculto
Gracias
|
|
|
Loque me refiero es que esta opcion disponible en wordpress, no está disponible en el editor de traduccion
Entiendo que es un valor que se debería de copiar del idioma original y no habría que traducir, pero no está disponible.
Ahora tengo 900 urls mal que debo corregir y hacer un 301 y no se como proceder
Gracias
|
|
|
Hola,
Es como dices, la relación padre/hijo entre las categorías no se traduce sino que se respeta entre original y traducciones. Y si hay errores los pasos que te mencionaba los debería corregir.
Para investigar mejor el problema, ¿puedes proporcionarme acceso temporal a tu sitio (wp-admin y FTP)?
**Importante:**
- **Haz un backup** de tu sitio antes de compartir los datos.
- Si no ves un formulario privado para ingresar las credenciales, **no las publiques** en el foro.
Si es necesario, podría replicar tu sitio localmente instalando un plugin (Duplicator, WP All in One Migration, WP Staging o Updraft Plus)? Una vez resuelto el problema, borraré la copia.
Saludos cordiales,
Otto
|
|
|
Hola,
La categoría Relojes Tudor y su traucción Tudor Watches tienen el mismo slug:
Podrías editarlo para que sea diferente en cada idioma. Lo he probado localmente y parece funcionar, podrías mirarlo?
❌ Por favor, antes que nada: haz un backup de tu sitio ❌
Saludos cordiales,
Otto
|
|
|
Buenas de nuevo Otto
Lo que quiero es que todo tenga el mismo slug salvo que sea traducible
/tienda/relojes/tudor/
/en/shop/watches/tudor
Eso es posible?
Sin embargo si la categoria es Relojes de hombre, querría traducirlo
/tienda/relojes/relojes-hombre
/en/shop/watches/men-watches
precisamente no quiero cambiar el nombre.
Gracias!
|
|
|
Hola,
En principio no es posible.
WP no permite que las taxonomías tengan el mismo slug, este debe ser único. Y para traducir, WPML crea categorías por idioma y las conecta.
Una opción que podría funcionar es:
- En WPML -> Settings -> Taxonomies Translation
- Marcar la taxonomía como "Display as translated"
- Y NO traducir la categoría
No se como funcionará esto con el tema de las jerarquías.
Puedes probarlo, pero no me extrañaría que no funcione.
El escenario que planteas no es una funcionalidad estándar de WPML.
Saludos cordiales,
Otto
|
|
|
Hola Otto
Podrias mandarme una captura del setting que debo hacer?y después eliminar la traduccion o no traducir?
Ahora mismo está puesto el mismo nombre en los dos idiomas en muchas categorias.
Se llama igual en los dos idiomas y es lo más adecuado
Te pongo un ejemplo:
enlace oculto
Estas categorias es que se llaman igual en español que ingles ya que son el nombre de la marca o la coleccion
por ejemplo;
/shop/watches/longines/
/tienda/relojes/longines/
En este caso no es posible traducir sin cambiar el sentido a todo
¿que me recomiendas?
Mil gracias
|
|
|
Hola,
Por lo que puedo ver la configuración de la categoría de producto ya está como "Traducible", esto quiere decir que si no hay traducción mostrará la original.
Luego deberías eleminar la traducción de las categorías cuyo slug no quieras modificar. Desde luego, este te impedirá traducir otras partes de la categoría, pero no se si esto es un problema.
Como te decía no estoy seguro de que esto funcione, es un "hack" no es una funcionalidad de WPML.
Sinceramente, creo que lo que menos dolores de cabeza te dará es usar:
/shop/watches/longines-watches/
/tienda/relojes/relojes-longines/
Entiendo que no es lo mejor, pero así va a funcionar correctamente.
Saludos cordiales,
Otto
|
|
|
Buenas de nuevo Otto
Según entiendo si la categoria principal es una que si tiene una traduccion diferente no pasaría el problema de que añada otra categoría
Había pensado que ya que relojes y watches es diferente, si son la categoria padre quedaría correctamente la url del producto
Este producto tiene como parent breitling que es el mismo nombre en los dos idiomas
enlace oculto
y la version en ingles:
enlace oculto
Sin embargo, este producto tiene relojes como categoria principal y aun así se muestra una subcategoria en la url:
enlace oculto
En inglés:
enlace oculto
La pregunta es si cambio que todas las marcas tengan como categoria principal relojes, podré hacer que todas las urls sean /watches/-product-name?
Gracias
Saludos!!
|
|
|
Hola,
Como te comentaba, lo "estándar" es que los slugs sean diferentes. Fuera de eso, puede funcionar pero no hay garantías.
La configuración predeterminada de “Enlaces permanentes de producto” de WooCommerce (es decir, “Base de la tienda con categoría”, /shop/category/product) incluirá todas las categorías de producto en la URL si un producto tiene subcategorías.
Si dejas como categoría principal watches para todos los productos, creo que también deberías modificar la jerarquía para que no esten incluidas en la URL, si es eso lo que prefieres.
Saludos cordiales,
Otto
|
|
|
Hola de nuevo Otto
Gracias por tu respuesta
La verdad es que no me aclaro muy bien que es lo que tengo que hacer para solucionar este problema
entiendo por tu mensaje que lo que debo hacer es poner otro nombre en ingles a todas las categorias, y una vez tengan el nombre diferente en inglés, dejarán de aparecer en la url?
Puedo probar con algun producto categoria y ver si cambia la url
Además de cambiar el nbombre en inglés hay que hacer algo para ue se genere la URL de nuevo?
Y según tu experiencia, como debería llamar la versión en inglés en este supuesto?
/tienda/relojes/tudor/black-bay
/en/shop/watches/tudor/black-bay
Gracias
|