Jeśli chcę wyświetlić bieżący tytuł węzła w page.html.twig (domyślnie wydaje się, że jest dostępny tylko w node.html.twig), muszę utworzyć funkcję wstępnego przetwarzania w następujący sposób:
function theme_preprocess_page(&$variables, $hook) {
// Set our page title so we can access it in page.html.twig
if ($node = \Drupal::routeMatch()->getParameter('node')) {
$variables['my_node_title'] = $node->title->value;
}
}
A potem muszę nadpisać page-title.html.twig, kopiując go do mojego bieżącego folderu motywów i komentując wszystko.
To nie wydaje się „właściwe”. Czy jest lepszy sposób?
node
jest po prostuNULL
. Czy istnieje sposób na uzyskanie dowolnego tytułu strony, w tym tytułu pierwszej strony (nawet jeśli zastosowano zastąpienie tytułu )?page['#title']
środku, nie jestem pewien, czy zawierałoby to jakiekolwiek zmiany wprowadzone przez VIews (ale prawdopodobnie)page['#title']
jest pusty ciąg znakówpage.html.twig
.Możesz dodać poniższe kody na górze
node.html.twig
w folderze szablonów swojego motywu:źródło
Kod Drupal 8 służący do robienia tego, co powinien zrobić kod pokazany poniżej, jest następujący.
źródło