Ich verwende das pagetitle
Kernmodul, um einen Seitentitel zu rendern. Für bestimmte Inhaltstypen möchte ich jedoch dieSeiteHaupttitel ist die Bezeichnung des Inhaltstyps (z. B. "News") und nicht die Bezeichnung des Knotens (z. B. "Drupal 8 veröffentlicht!").
Gibt es einen einfachen Weg, dies zu erreichen? Meine erste Vermutung war, das zu verwenden template_preprocess_page_title
, $variables
hat aber keinerlei Kontext über Knoten, Knotentyp usw.
Antworten:
Wie von Ivan Jaros erwähnt, können Sie verwenden
hook_preprocess_page_title
.Sie müssen nur zuerst den Knoten von der Route laden, um einen Kontext zu erhalten.
Wenn Sie dies nur für bestimmte Inhaltstypen verwenden möchten, können Sie
$node->bundle()
den maschinenlesbaren Namen abrufen und ihn überprüfen.quelle
block_title
. Der Seitentitel wird jedoch nicht überschrieben. Irgendeine Idee, wie man denLinus hat es für die Vorverarbeitungsfunktion richtig gemacht, aber ich persönlich würde dies verwenden, um den aktuellen Knoten zu erhalten (da er kürzer ist und einfacher zu sein scheint ...)
Verwenden Sie dann, um auf den Knotentitel zuzugreifen:
oder um auf ein anderes benutzerdefiniertes Feld (mit einem Wert) zuzugreifen:
Greifen Sie in einer regulären Knotenvorverarbeitungsfunktion auf alles zu, wie Sie auf diese Daten zugreifen würden :)
quelle
Verwenden Sie das Metatag- Modul, das bereits D8- fähig ist und alles unterstützt, was Sie benötigen.
quelle
Machen Sie ein kleines Modul. Zwei Dateien erforderlich:
Dateiname: liveeventtitles.info.yml
Datei: liveeventtitles.module
Ich habe wahrscheinlich mehr als ich brauche, zum Beispiel glaube ich nicht, dass ich einen Standardwert und PLACEHOLDER in hook_form_alter () brauche, aber ich muss jemandem einen Grund geben, dies abzustimmen (-;
quelle
In THEMENAME_preprocess_html (& $ variables) {} gibt es die $ variables ['head_title'], die die höchste Handinstanz für den Seitentitel ist (strukturierter Titel: $ variables ['head_title_array']). Es gibt auch andere interessante Array-Schlüssel wie $ variables ['page'] ['content'] und $ variables ['node_type'], auf deren Grundlage der Titel verarbeitet werden kann.
Letzter Gedanke: $ variables ['head_title'] = ['title_part1', 'title_part2']; da in der html.html.twig
quelle