es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Hreflang genera URL dinámicas.

Si alguien puede ayudarme a obtener una URL de forma dinámica en un twig (base.html.twig) pero para la versión alternativa del enlace de la página actual con fines de SEO.

El sitio web utiliza dos idiomas /ar y /fr, cuando se carga la versión francesa, el sitio web debe mostrar el enlace de la versión árabe como alternativa:

URL de la página cargada: https://website.com/fr

Etiqueta hreflang:

No soy bueno en programación, para la página de inicio he probado esto:

Pero necesito una solución para obtener la URL para todas las páginas, como agregar una variable después de /fr/… o /ar/…

¿Existe alguna manera de hacerlo dentro de un twig HTML?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una manera de obtener la URL de forma dinámica en una plantilla Twig para el enlace de la versión alternativa de la página actual con fines de SEO. Una forma de hacer esto es utilizando una combinación de funciones Symfony y Twig.

    En primer lugar, puedes definir una variable en tu controlador que contenga la ruta actual y el idioma. Por ejemplo:

    $currentRoute = $request->attributes->get('_route');
    $currentLang = $request->getLocale();
    

    Luego, en tu plantilla Twig, puedes usar la función path para generar la URL alternativa en función del idioma actual:

    <link rel="alternate" hreflang="{% if currentLang == 'fr' %}ar{% else %}fr{% endif %}" href="{{ path(currentRoute, {'_locale': {% if currentLang == 'fr' %}'ar'{% else %}'fr'{% endif %}}) }}">
    

    Este fragmento de código generará una etiqueta hreflang con el idioma y la URL adecuados en función del idioma de la página actual, y funcionará para todas las páginas.

    Ten en cuenta que esto asume que has configurado correctamente tus rutas y configuraciones de idioma en Symfony. Si no lo has hecho, deberás configurar tus rutas y configuraciones de idioma antes de que este código funcione.

Comments are closed.