Drupal 8 覆盖主题挂钩页面文件建议

Drupal 8 override Theme Hook Page file suggestion

我知道网上有一些关于如何执行此操作的教程,但由于某些原因我没有用。

我想在模板的 "Theme Hook: Page" 级别添加一个文件主题建议,其中包含内容类型的名称(这样我就可以让该内容类型的所有项目都使用该模板)。

所以,我将其添加到我的 MYTHEME.theme.php 文件中:

function MYTHEME_theme_suggestions_page_alter(array &$suggestions, array $variables) {
   if ($node = \Drupal::request()->attributes->get('node')) {
       array_splice($suggestions, 1, 0, 'page__node__' . $node->getType());
    }
}

因此您会期望以下输出:

我已经尝试过清除缓存。我正在使用 Drupal 8.1

我在这里错过了什么?

只需将此文件添加到您的主题 floder node--typeName.html.twig 不需要任何功能。现在你的内容类型应该使用这个模板

我是通过下面的代码实现的,看起来和你的代码有些相同

if ($node = \Drupal::routeMatch()->getParameter('node')) {
    $suggestions[] = 'page__node__'.$node->bundle();
}

我的错误不在于函数,而在于文件名。我的文件名是 MYTHEME.theme.php 但它应该是 MYTHEME.theme.

这就是代码不起作用的原因。