Drupal 8 自定义模块中的视图标题

Drupal 8 customizing view title in module

我正在使用以下代码将视图标题更改为自定义标题:

function MYMODULE_preprocess_page_title(&$variables) {
  if (some logic to check if this is the correct view)
    $variables['title] = 'Something Different!';
}

这可以更改 <h1> 标签内内容区域的标题,但不会更改浏览器选项卡的标题(在 <html><header><title>...</title> 中)。

更改视图标题以同时反映在页面 body 和浏览器标题中的正确方法是什么?

这将取决于您如何构建或使用什么主题,例如使用默认系统主题更改 HTML 标题,它使用类似这样的东西 https://github.com/drupal/drupal/blob/8.4.x/core/modules/system/templates/html.html.twig#L32

 <title>{{ head_title|safe_join(' | ') }}</title>

在这种情况下,您需要查看它的值是什么,我建议在页面预处理器中查找值。

This 页面应该可以提供帮助。

tl;dr 您可以在 *.routing.yml 文件中设置标题(静态或动态),也可以通过在标记数组中设置 #title 来设置标题。