J'essaie d'afficher du contenu lorsque je suis sur la première page de mon site Web de test Drupal 8, mais le contenu s'affiche sur chaque page:
{% 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 %}
Pourquoi cela ne fonctionne-t-il pas et comment puis-je le faire?
Notez que si vous souhaitez fournir
$variables['is_front']
des modèles qui ne le sont pas, vous pouvez l'ajouter à la fonction de prétraitement concernée.Cela se fait de la même manière dans template_preprocess_page pour
page.html.twig
.Même réponse ici
la source
url.path.is_front
un contexte de cache. Voir ce commentaire .En supposant que le modèle que vous utilisez est page.html.twig, la variable que vous recherchez est
is_front
;front_page
contient l'URL de la page d'accueil, initialiséetemplate_preprocess_page()
avec le code suivant.Pour les autres fichiers de modèle, Drupal ne fournit aucune variable vous indiquant si l'utilisateur visite la page d'accueil. En utilisant un code similaire à celui utilisé à partir de
template_preprocess_page()
, vous pouvez définir cette variable dans la fonction de prétraitement pour le modèle que vous utilisez.Remplacez
HOOK
par le type de modèle (par exemple, champ pour le modèle field.hmtl.twig).la source
Vous pouvez l'obtenir directement dans html.html.twig en utilisant root_path. Il est déjà sorti sur la ligne 31 pour définir la classe de corps:
{% sinon root_path%}
CODE
{% fin si %}
la source