Este hilo está resuelto. Aquí tienes una descripción del problema y la solución.
Problem:
El cliente está intentando traducir el slug de una taxonomía en su sitio web, pero al hacerlo, las páginas bajo esta sección se rompen. El cliente ha personalizado el archivo functions.php para que las taxonomías hijas aparezcan bajo la categoría padre en la URL.
Solution:
Primero, hemos revisado que la estructura de URLs deseada no requiere código personalizado si se configura correctamente desde el inicio. Se sugirió al cliente revisar un sitio de prueba donde se demostró que la estructura padre/hijo funciona sin personalizaciones adicionales. Se recomendó al cliente cambiar la estructura de enlaces permanentes a 'Post name' para ver si resuelve el problema. Además, se identificó que el problema podría estar en una configuración del tema o en el código personalizado utilizado para generar la taxonomía, lo cual está fuera del alcance del soporte de WPML. Se aconsejó contactar a los desarrolladores del tema o del código personalizado para ajustar este utilizando los hooks de WPML como referencia. Si esta solución no es relevante debido a que está desactualizada o no se aplica a su caso, le recomendamos abrir un nuevo ticket de soporte. También es altamente recomendable revisar los problemas conocidos y confirmar que tiene instaladas las últimas versiones de temas y plugins.
Este es el foro de soporte técnico de WPML, el plugin multilingüe de WordPress.
Todas las personas pueden leerlo pero solo los clientes de WPML pueden ingresar comentarios. El equipo de WPML responde en los foros 6 días a la semana, 22 horas por día.
Etiquetado: Custom Work, Exception
Este tema contiene 19 respuestas, tiene 2 voces.
Última actualización por Carlos Rojas hace 7 meses, 3 semanas.
Asistido por: Carlos Rojas.
Autor | Entradas |
---|---|
junio 26, 2024 en 11:42 am #15833262 | |
francisco-javierR-6 |
Antecedentes del problema: function custom_taxonomy_term_link( $url, $term, $taxonomy ) { $custom_slug = get_option('houzez_settings')['property_area_rewrite_base']; $parents = get_ancestors( $term->term_id, $taxonomy, 'taxonomy' ); return $url; function custom_taxonomy_rewrite_rule() { // Adding a rule for the pagination // Rule for the main term archive Síntomas: Preguntas: Adjunto aquí de nuevo todo lo que había escrito ya que no estoy muy seguro si el sitema ha reconocido el error... En primer lugar comentar que escribimos esta consulta ya que la última consulta técnica fue solventada de manera excepcional por el equipo y nosotros no tenemos capacidad interna para hacerlo. Lo hemos intentado, pero no lo hemos conseguido y por ello, recurrimos a vuestro equipo técnico. Si el equipo consiguiese darnos una solución a este tema, todo lo relativo a cuestiones/problemas técnicos de la traducción que hemos encontrado desde el principio quedaría solucionado, y estaremos eternamente agradecidos. El problema es el siguiente: El problema que encontramos es al traducir ese slug /universidad/, a inglés en este primer caso, y es que al traducir (desde traducciones en cadena) a /university/, se rompen las páginas bajo esta sección. Ejemplo de página bajo la sección /universidad/ - /university/ Como podréis comprobar, funciona perfectamente, mientras el slug no cambié, como decía en cuanto se realice la traducción de /universidad/ a /university/ se rompería. Tenemos este staging donde tras vuestra contestación y aceptación, podemos daros acceso si fuese de utilidad para que hagáis las pruebas necesarias Aquí ya he traducido el slug, y referente al ejemplo anteriormente mostrado, podréis ver que ya no funciona en INGLÉS. IMPORTANTE: solo se rompe para las páginas child de las taxonomías. Para que los child (taxonomías hijas) vayan bajo la categoría padre, se hizo una personalización en el functions.php que incluyo abajo. Esta personalización permite que /campus-humanidades/ que es hijo de /universitat-de-barcelona/ pueda aparecer bajo esta en la URL. Este es el código, creo, completo que hace referencia a lo anterior. $custom_slug = get_option('houzez_settings')['property_area_rewrite_base']; $parents = get_ancestors( $term->term_id, $taxonomy, 'taxonomy' ); return $url; function custom_taxonomy_rewrite_rule() { // Adding a rule for the pagination // Rule for the main term archive ---- Espero que más o menos haya quedado claro nuestro problema. Esperamos que podáis ayudarnos y como decía, estaremos muy muy muy agradecidos. Mil gracias. |
junio 26, 2024 en 12:51 pm #15834170 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
Hola, Tenga en cuenta que las soluciones con código personalizado (como ésta) caen fuera del alcance de nuestro servicio de soporte, por lo que es posible que llegue un punto en el que no pueda darle una solución. Dicho lo anterior, comencemos a entender el problema. La primera pregunta que me surge es: Por qué no ha utilizado una taxonomía jerárquica donde las taxonomías hijas se muestran con esta estructura en la URL: término-padre/término-hijo (tal y como usted desea) y en cambio a optado por crear funciones personalizadas para alterar la URL? Nota importante: el slug de las taxonomías no siempre se puede traducir, hay una limitación en este sentido y en este enlace puede encontrar la explicación: https://wpml.org/documentation/support/translating-slugs-for-custom-post-type-archives/ Quedo a la espera de su mensaje. |
junio 26, 2024 en 1:28 pm #15834338 | |
francisco-javierR-6 |
Buenas tardes, Carlos Gracias por tu rápida respuesta. Por supuesto y si no podéis dar solución, no hay ningún problema y lo entiendo. Como decía, he intentado todo antes de contactaros. En prinicipio el slug sí que se puede traducir y lo hacemos desde traducción en cadena: En respuesta a tu consulta, sí que lo hacemos de manera jerárquica, de hecho es el motivo por el que tuvimos que personalizar la plantilla de WP, por defecto, aunque la categoría tuviera seleccionada otra como padre, no aparecía bajo la url, jerarquicamente. Tras las presonalización es tal y como ocurre, es decir: Ejemplo: Padre -> /universitat-de-barcelona/ Hijo -> /campus-humanidades/ Espero que se entienda y por favor, no dudes en consultar cualquier cuestión que necesites que aclare. Muchas gracias de nuevo. |
junio 26, 2024 en 7:35 pm #15836936 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
Muchas gracias por su respuesta. He analizado las URLs de su sitio y todavía hay algo que no acabo de entender. Sospecho que la causa del problema puede ser que ha removido la base de la categoría, sin embargo eso no justificaría el código personalizado. A modo de pruebas he creado un sitio Sandbox con una nueva instalación de WordPress + WPML al que puede acceder a través de este enlace: enlace oculto En este sitio he creado dos categorías padre/hija para las entradas y una entrada asignada a cada categoría. He traducido este contenido de prueba y usted puede observar que no es necesario ningún código personalizar para que se muestre correctamente el contenido y las URLs tienen la estructura dominio.com/category/padre y dominio.com/category/padre/hija en ambos idiomas. Le pido que revise el sitio sandbox y me diga -además de quitar la base de la categoría- que otra cosa necesitaría para que se muestren las URLs como desea. Saludos! |
junio 27, 2024 en 10:18 am #15842896 | |
francisco-javierR-6 |
Hola Carlos, Gracias por tu trabajo. He revisado la web que compartes y efectivamente, se muestra padre e hijo sin problema. Sin embargo, no sé si pueda deberse a la plantilla de WP elegida para nuestro proyecto, pero no es así como funcionaba esta categoría, y fue desde la propia plantilla, al inicio de la compra, quién nos desarrolló esta personalización tras nuestra petición. Podrás comprobarlo comentando del php functions el código que enviaba anteriormente, Yo lo he comentado en staging que os decía. Aquí puedes ver: Tiene categoría padre asignada: ¿Supongo que será un tipo de categoría especial? No lo sé, mis conocimientos técnicos no dan para ello. Dime si tienes más dudas por favor. Mil gracias. |
junio 27, 2024 en 12:43 pm #15843929 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
Muchas gracias por su respuesta. 1.- Le pido que describa los pasos a seguir para editar la taxonomía o comparta la URL de la captura de pantalla donde aparece el slug de la taxonomía. 2.- Me gustaría solicitar acceso temporal al sitio staging (wp-admin y FTP) con el objetivo de ver el problema más de cerca. Su próxima respuesta será privada y en ella encontrará los campos correspondientes a las credenciales solicitadas. Aunque no realizaré ningún cambio en el sitio siempre es recomendable crear una copia de seguridad del sitio completo antes de compartir las credenciales de acceso. Saludos! |
junio 28, 2024 en 8:52 am #15850589 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
Hola Javier, Sin embargo no encuentro cómo añadir/editar los términos de la taxonomía. Puede decirme a qué tipo de contenido está asignada esta taxonomía y cómo se creó? |
junio 28, 2024 en 8:54 am #15850614 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
También he observado que la estructura de los enlaces permanentes en enlace oculto es /%category%/%postname%/ Puede cambiar la estructura a Post name y comprobar el resultado? |
junio 28, 2024 en 8:55 am #15850615 | |
francisco-javierR-6 |
Claro, los encontrarás aquí: Por favor, dime cualquier duda, feliz de ayudar. |
junio 28, 2024 en 9:10 am #15850655 | |
francisco-javierR-6 |
Hola Carlos, puedes realizar ese cambio que comentas en la estructura de los enlaces permanentes, solo hay que tener en cuenta que no debe romperse la URL de las propiedades: enlace oculto /gerona/ -> es la ciudad, y debe mantenerse ahí en el path, no sé si podrá tener algún impacto lo anterior, pero igual, debo compartirlo contigo, porque son nuestras páginas principales. Gracias!! |
junio 28, 2024 en 10:30 am #15851123 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
Javier, muchas gracias por los mensajes. Voy a revisar el sitio a ver si encuentro una solución. Le mantengo al tanto 🙂 |
julio 1, 2024 en 8:50 am #15866910 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
Hola Javier, He revisado el sitio, ajustado algunas configuraciones y he podido obtener esta estructura en la URL: enlace oculto En este caso solamente debe añadir la categoría de provincia (por ejemplo: Gerona o Barcelona) como categoría padre de enlace oculto |
julio 2, 2024 en 7:04 am #15872962 | |
francisco-javierR-6 |
Hola Carlos No sé si hay algún malentendido, pero lo que me envías como ejemplo está mal, y precisamente es el error que se arregló personalizando el functions php, como indicaba en el resto del hilo de mensajes. Como verás, aquí no está incluida la categoría padre: La correcta sería: Para la cual, la traducción debería ser: Lo he añadido en mayúsculas la parte que falta (categoría padre). Y la ciudad a la cual haces referencia (Girona o Barcelona) no tienen nada que ver en este caso, ya que eso es solo para reconocer a qué ciudad pertenece la universidad/escuela. Lo que debe ser PADRE es la misma Taxonomía. enlace oculto Quedo pendiente y muchas gracias. |
julio 2, 2024 en 8:32 am #15873539 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
Hola Javier, Sin embargo sigo sospechando que la causa del problema está en una configuración de algún plugin o en el código para generar la taxonomía property_area porque en el sitio que he creado de prueba funciona de forma nativa: enlace oculto |
julio 2, 2024 en 8:56 pm #15878185 | |
francisco-javierR-6 |
Hola Carlos, sí ya entiendo que cuando no se utiliza el tema que he elegido para la web, funciona tal y como esperamos. Sin embargo, y para evitar esta cuestión, se editó el functions.php tal y como ya he comentado, y debe haber algo dentro de ese código, que falla cuando hacemos la traducción, y en otro idioma ya no tiene capacidad de mantener la estructura /padre/hijo/ No sé si hay alguna opción de que el equipo técnico pudiese echar un vistazo. De todas formas, estoy muy agradecido por el trabajo. Saludos, |