我怎样才能 set/remove 元标记?

How can I set/remove meta tags?

如何添加或删除元标记,例如 Drupal 核心添加的默认标记?

我已经将元标记添加到 html.html.twig 文件中。 似乎有模块处于测试阶段,但如果可能的话,我现在想避免为此使用第三方模块。

启用模块

Meta 标签模块要求您安装三个模块:

您会看到元标记模块带有您可以启用的其他模块,具体取决于您网站的需要。

Meta 标签模块要求您安装三个模块:

您会看到元标记模块附带了您可以启用它的其他模块。

配置元标记模块

  • 点击黑色管理菜单栏中的配置
  • 在屏幕左侧的搜索和元数据框中单击元标记。

注意有四个全局设置。

  • 单击每个并观察您默认获得的内容。默认情况下,所有节点、术语和用户都将具有相同的配置。但事实并非如此。

现在添加默认元标记。

  • 单击添加元标记默认值。

  • 从类型下拉列表中选择文章。在摘要字段中输入令牌 [node:content-type:description]。保存 从现在开始创建文章节点时,文章内容类型的描述将显示为:

现在是时候在站点中输入元标记数据了。

这些是您在 Drupal 中添加元标记时可以遵循的一些基本步骤。请按照这些步骤操作,如果您遇到任何其他问题,请告诉我。

(来源:https://www.ostraining.com/blog/drupal/meta-tags/

您也可以只使用主题的 .theme 文件中的 THEME_preproces_html 挂钩来添加 META-TAG
例如:

function THEME_preprocess_html(&$variables) {
$viewport = [
    '#tag' => 'meta',
    '#attributes' => [
      'name' => 'viewport',
      'content' => 'user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1',
    ],
  ];
  $variables['page']['#attached']['html_head'][] = [$viewport, 'viewport'];
}

会给你这个:

<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1">

可能有点晚了。但是如果你只是想摆脱这些元标签,你可以简单地在你的 THEMENAME.theme 文件中完成:

function YOURTHEMENAME_page_attachments_alter(array &$page) {

  $unset_meta = [
    'system_meta_generator', // Generator tag
    'MobileOptimized', // MobileOptimized tag
    'HandheldFriendly', // HandheldFriendly tag
  ];

  foreach ($page['#attached']['html_head'] as $key => $value) {
    if (in_array($value[1], $unset_meta)) unset($page['#attached']['html_head'][$key]);
  }
}