Estou tentando mostrar conteúdo quando estou na primeira página do meu site de teste do Drupal 8, mas o conteúdo é exibido em todas as páginas:
{% 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 que isso não funciona e como posso fazer isso funcionar?
Observe que, se você deseja fornecer
$variables['is_front']
modelos que não fornecem , é possível adicioná-lo à função de pré-processo em questão.É feito da mesma maneira em template_preprocess_page for
page.html.twig
.Mesma resposta aqui
fonte
url.path.is_front
como contexto de cache. Veja este comentário .Supondo que o modelo que você está usando seja page.html.twig, a variável que você está procurando é
is_front
;front_page
contém o URL da primeira página, inicializadotemplate_preprocess_page()
com o seguinte código.Para outros arquivos de modelo, o Drupal não fornece nenhuma variável informando se o usuário está visitando a primeira página. Usando um código semelhante ao usado
template_preprocess_page()
, você pode definir essa variável na função de pré-processo para o modelo que está usando.Substitua
HOOK
pelo tipo de modelo (por exemplo, campo para o modelo field.hmtl.twig).fonte
Você pode obtê-lo diretamente em html.html.twig usando root_path. Já está na linha 31 para definir a classe do corpo:
{% se não for root_path%}
CÓDIGO
{% fim se %}
fonte