Saltar navegación

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: 

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.
enlace oculto

Ejemplo:
enlace oculto

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.
(pero teniendo en cuenta que el cambio de propiedad no surgió efecto alguno)

Quedo atento.
Gracias.

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,
Muchas gracias por la confirmación.

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:
También le pido que me confirme lo siguiente: si activa el tema padre y deja el slug como %city%, desaparece el problema?

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
Ejemplo:
enlace oculto

Quedo pendiente y mil gracias.
Javier.

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,
Nuestros especialistas de 2do nivel han confirmado que se trata de un problema que necesita de una solución personalizada y por lo tanto cae fuera del alcance de nuestro servicio de soporte.

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:
- Cree una copia de seguridad del sitio completo
- Ejecute la siguiente query en la base de datos:

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,
Carlos

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
INSERT INTO `w47fa_postmeta` (`post_id`, `meta_key`, `meta_value`) VALUES ('49068', '_yoast_wpseo_primary_property_city', '654')

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:
enlace oculto

Por si sirve para que podáis revisar. De nuevo lo agradezco mucho y si podemos solucionar esto será perfecto para poder avanzar.
Saludos

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!