Ich versuche, eine Feldvorlage mit meiner eigenen zu überschreiben. Das Feld heißt field_test, daher habe ich ein Feld - Feldtest - mynodetype.html.twig-Vorlagendatei `im Stammverzeichnis-Verzeichnis / templates / erstellt, aber Drupal erkennt es nicht.
Ich habe den Cache von der Benutzeroberfläche gelöscht, den Debug-Modus in settings.yaml aktiviert, das Devel-Modul installiert und die Theme-Registrierung bei jeder Anforderung neu generiert, aber nichts scheint zu helfen. Das Feld wird immer mit der Standardvorlage field.html.twig gerendert.
Wie überschreibe ich die von Drupal verwendete Feldvorlage?
field--field_test--mynodetype.html.twig
? (Unterstreichen im Feldnamen)field--node--field-image--article.html.twig
(beachten Sie den möglicherweise fehlenden 'Knoten' in Ihrem Vorlagennamen).Antworten:
Sie müssen den Entitätstyp (Knoten, taxonomy_term, ...) im Vorschlag für den Vorlagennamen wie angegeben angeben, dh Feld - Knoten - Feldtest.html.twig.
Knoten ist der Entitätstyp und Feldtest ist der Feldname.
Wenn Sie wissen möchten, welche Vorlage ein bestimmtes Markup-Element generiert, können Sie die Debug-Option von Twig verwenden. Sie aktivieren das Twig-Debugging in sites / default / services.yml. Setzen Sie den Wert von
debug
intwig.config
auftrue
.Ich habe das zusätzliche field_test Feld auf die Artikel Knoten, und ich habe die Vorlage Vorschläge in der HTML - Quelle .
Nachdem ich den Vorschlag erhalten hatte, erstellte ich eine Vorlagendatei und behielt diese im Vorlagenverzeichnis des Themas.
Denken Sie daran, den Cache zu leeren.
Weitere Informationen finden Sie unter Arbeiten mit Zweigvorlagen .
quelle
Vorlagen müssen in einem Vorlagenverzeichnis in Ihrem Thema abgelegt werden. Sie werden nicht in der Wurzel Ihres Themas aufgenommen. Siehe https://www.drupal.org/node/2349803#templates (das ich gerade aktualisiert habe, um den Unterschied zum Drupal 7-Verhalten festzustellen).
quelle
templates
. Ich meine, andere Vorlagen überschreiben die Arbeit. Also habe ich die Standardeinstellung überschrieben,node.html.twig
die gut funktioniert. Aber ich kann Felder nicht überschreiben.