Estoy tratando de mostrar contenido cuando estoy en la página principal de mi sitio web de prueba de Drupal 8, pero el contenido se muestra en cada página:
{% if front_page %}
<header role="banner">
{% if logo %}
<a href="{{ front_page }}" title="{{ 'Home'|t }}" rel="home">
<img src="{{ logo }}" alt="{{ 'Home'|t }}"/>
</a>
{% endif %}
<h1 style="color:black">TESTTESTTESTESTAET</h1>
<h1>test</h1
{{ page.header }}
</header>
{% endif %}
¿Por qué esto no funciona y cómo puedo hacer que funcione?
Tenga en cuenta que si desea proporcionar
$variables['is_front']
plantillas que no lo hacen, puede agregar esto a la función de preproceso correspondiente.Se hace de la misma manera en template_preprocess_page para
page.html.twig
.La misma respuesta aquí
fuente
url.path.is_front
como contexto de caché. Ver este comentario .Suponiendo que la plantilla que está utilizando es page.html.twig, la variable que está buscando es
is_front
;front_page
contiene la URL de la página principal, inicializadatemplate_preprocess_page()
con el siguiente código.Para otros archivos de plantilla, Drupal no proporciona ninguna variable que le indique si el usuario está visitando la página principal. Usando un código similar al utilizado
template_preprocess_page()
, puede establecer esa variable en la función de preproceso para la plantilla que está utilizando.Reemplace
HOOK
con el tipo de plantilla (por ejemplo, campo para la plantilla field.hmtl.twig).fuente
Puede obtenerlo directamente en html.html.twig usando root_path. Ya se muestra en la línea 31 para establecer la clase de cuerpo:
{% si no root_path%}
CÓDIGO
{% terminara si %}
fuente