Este hilo está resuelto. Aquí tienes una descripción del problema y la solución.
Problem:
The client reported an issue where the hreflang tags were incorrectly including '/en/' in the URL for the Spanish version, leading to 404 errors.
Solution:
We recommended deactivating all plugins except those necessary for WPML and the theme, and then reactivating them one by one to identify the cause. If the issue persisted, we provided a custom code solution involving updating the database and modifying the functions.php file in the child theme directory. The steps included:
1. Creating a full site backup.
2. Running the following SQL query:
INSERT INTO `wp_postmeta` (`post_id`, `meta_key`, `meta_value`) VALUES ('49068', '_yoast_wpseo_primary_property_city', '654');
3. Adding the provided PHP code to functions.php, which adjusts the URL structure based on the primary city term associated with each property.
If this solution does not resolve the issue or seems irrelevant due to updates or different configurations, we recommend checking the related known issues, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. If further assistance is needed, please open a new support ticket.
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: Exception
Este tema contiene 26 respuestas, tiene 2 voces.
Última actualización por Carlos Rojas hace 9 meses, 2 semanas.
Asistido por: Carlos Rojas.
Autor | Entradas |
---|---|
mayo 10, 2024 en 7:54 am #15613066 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
Hola Javier, Solo para confirmar: si activa el tema hijo y el slug de las propiedades lo establece como 'propiedad', el problema desaparece? |
mayo 10, 2024 en 11:31 am #15614357 | |
francisco-javierR-6 |
Gracias por tu email. Extraño pero aunque cambio el slug a propiedad, sigue apareciendo todavía /nombre-de-ciudad/ en el path. Ejemplo: Creé incluso, una nueva página traducida y lo mismo, aparece todavía el %city%... No sé si puede ser algo de caché... pero no veo ningún cambio. En respuesta a tu pregunta, el error de hreflang sigue apareciendo. Quedo atento. Javier. |
mayo 10, 2024 en 12:16 pm #15614599 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
Hola Javier, En este caso parece que estamos frente un problema con el código que compartió anteriormente que se considera código personalizado y por ello cae fuera del alcance de nuestro servicio de soporte. Sin embargo me gustaría pedirle su autorización para crear una copia del sitio y escalar este ticket a nuestro 2do nivel de soporte para que nuestros especialistas revisen el código y determinen si desde nuestra parte podemos encontrar una solución. También le pido que me confirme lo siguiente: si activa el tema padre y deja el slug como %city%, desaparece el problema? Quedo a la espera de su mensaje. |
mayo 10, 2024 en 12:46 pm #15614780 | |
francisco-javierR-6 |
Hola Carlos, Muchas gracias por tu amable respuesta. Te agradezco mucho que traslades la cuestión al equipo 2do nivel. Espero que podamos solucionarlo porque es la única cuestión pendiente para poder avanzar en la traducción. En respuesta a: Si dejo el slug %city% pero mantengo el tema padre, las páginas no funcionan. De hecho se quedan con el %city% directamente en la URL Quedo pendiente y mil gracias. |
mayo 13, 2024 en 8:43 am #15619109 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
Hola, He escalado este ticket a nuestro 2do nivel de soporte donde nuestros especialistas de 2do nivel determinarán si el código personalizado que se encuentra en el archivo functions.php del tema hijo puede ser corregido por nosotros o no. Regresaré con usted en cuanto tenga más información. |
mayo 15, 2024 en 1:20 pm #15630621 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
Hola Javier, Han encontrado una solución que funciona en la copia del sitio que tienen pero no es garantía de que vaya a funcionar correctamente en su sitio, por lo que si sigue necesitando asistencia en este aspecto debe contactar con el autor del código original. Aquí van los pasos para aplicar la solución de nuestros especialistas de 2do nivel: INSERT INTO `wp_postmeta` (`post_id`, `meta_key`, `meta_value`) VALUES ('49068', '_yoast_wpseo_primary_property_city', '654'); - Pegue el siguiente código en el archivo functions.php de la carpeta del tema hijo: function residen_property_post_link($post_link, $post) { if (is_object($post) && $post->post_type == 'property') { if (class_exists('WPSEO_Primary_Term')) { // Show Yoast Primary Category, or First category. $wpseo_primary_term = new WPSEO_Primary_Term('property_city', $post->ID); $wpseo_primary_term = $wpseo_primary_term->get_primary_term(); $term = get_term($wpseo_primary_term); if (!is_wp_error($term)) { $home_url = apply_filters( 'wpml_home_url', get_option( 'home' ) ); $home_url = rtrim($home_url, '/') . '/'; $post_link = $home_url . (user_trailingslashit("{$term->slug}/{$post->post_name}")); } } else { $city_terms = wp_get_object_terms($post->ID, 'property_city'); if ($city_terms) { $home_url = apply_filters( 'wpml_home_url', get_option( 'home' ) ); $home_url = rtrim($home_url, '/') . '/'; $post_link = $home_url . (user_trailingslashit("{$city_terms[0]->slug}/{$post->post_name}")); } } } return $post_link; } add_filter('post_type_link', 'residen_property_post_link', 1, 2); - Guarde los cambios Saludos, |
mayo 15, 2024 en 4:16 pm #15631683 | |
francisco-javierR-6 |
Hola Carlos, gracias por todo el trabajo. Entiendo todo lo que comentas respecto a la complejidad. Te comento, he hecho la consulta en SQL, pero he tenido que cambiar a para que funcione ya que wp_postmeta no existe en la bbdd Luego he añadido el código en el functions, pero resulta un error critico. Y no sé si es que al haber cambiado la query, habría que cambiar algo en el código, o si por otro lado, significa que no ha funcionado esta solución. Dejé el código en el functions con el error crítico en staging: Por si sirve para que podáis revisar. De nuevo lo agradezco mucho y si podemos solucionar esto será perfecto para poder avanzar. Javier. |
mayo 16, 2024 en 8:14 am #15633496 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
Hola Javier, Has probado a sustituir la función que tenías en el tema hijo con la que te compartí? Puedes decirme cual es el error fatal? |
mayo 16, 2024 en 8:26 am #15633657 | |
francisco-javierR-6 |
Buenas Carlos, Por favor, me perdonas porque había añadido el código en lugar de reemplazar el anterior. Te confirmo que ha solucionado el problema y estoy muy contento con el servicio de soporte prestado. Solo una última pregunta, si añadierá neuvos idiomas (es la idea en un futuro) ¿funcionaría también? De nuevo, millón de gracias por todo el trabajo del equipo |
mayo 16, 2024 en 8:44 am #15633805 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
Genial! En teoría debería funcionar si añadiera más idiomas. |
mayo 17, 2024 en 10:47 am #15638921 | |
francisco-javierR-6 |
todo genial, gracias a carlos |
mayo 17, 2024 en 11:08 am #15638974 | |
Carlos Rojas Supporter
Idiomas: Inglés (English ) Español (Español ) Zona horaria: Europe/Madrid (GMT+01:00) |
Por favor no dude en contactarnos si necesita de nuestra ayuda en el futuro con WPML. Estaremos más que contentos de poder ayudarle. Que tenga un excelente día! |