it-swarm.com.de

Wie füge ich ein Meta-Tag im Abschnitt <head> ... </ head> hinzu?

Wie kann ich das folgende Meta-Tag in das <head>...</head> Abschnitt in Drupal 8?

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
21
lesley n.

Aus verschiedenen Quellen habe ich verschiedene Möglichkeiten gefunden, Meta-Tags in Drupal 8 hinzuzufügen und somit alle Möglichkeiten zu kompilieren.


1. Verwenden Sie die Datei THEME.theme

Ich denke, die gleiche Frage wurde zum Stakeoverflow gestellt: Meta-Tag zum Kopf in drupal 8 hinzufügen und wenn Sie die Antwort von @ Danielishko sehen, hat er vorausgesetzt, der folgende Code,

Fügen Sie einfach den folgenden Code in Ihre THEME.theme - Datei ein, leeren Sie den Cache und Sie können loslegen. Hinweis: function theme_preprocess_html(&$variables) {...} sollte bereits vorhanden sein Erstellen Sie daher keine neue .theme-Datei, da sonst ein Fehler auftritt.

function theme_preprocess_html(&$variables) {

  $xuacompatible = [
    '#tag' => 'meta',
    '#attributes' => [
      'http-equiv' => 'x-ua-compatible',
      'content' => 'ie=Edge',
    ],
  ];


  $variables['page']['#attached']['html_head'][] = [$xuacompatible, 'x-ua-compatible'];
}

Ausgabebild:

(enter image description here


2. Durch Vorlagendatei:

Zu diesem Thema wurde eine weitere Frage gestellt: Festlegen/Entfernen von drupal 8 Meta-Tags .

Wenn Sie die Frage im oben genannten Link lesen, hat der Fragesteller erwähnt, dass Sie mit der Vorlagendatei html.html.twig Meta-Tags direkt zu <head>....</head> Hinzufügen können.

html.html.twig Datei, die Sie unter core/modules/sytem/templates/html.html.twig Finden. Sie können diese kopieren und in den Vorlagenordner Ihres Themas einfügen, und Ihr Thema verwendet diese.

von html.html.twig

<!DOCTYPE html>
<html{{ html_attributes }}>
  <head>
    <head-placeholder token="{{ placeholder_token|raw }}">
    <title>{{ head_title|safe_join(' | ') }}</title>
    <css-placeholder token="{{ placeholder_token|raw }}">
    <js-placeholder token="{{ placeholder_token|raw }}">
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
  </head>
  <body{{ attributes }}>
    {#
      Keyboard navigation/accessibility link to main content section in
      page.html.twig.
    #}
    <a href="#main-content" class="visually-hidden focusable">
      {{ 'Skip to main content'|t }}
    </a>
    {{ page_top }}
    {{ page }}
    {{ page_bottom }}
    <js-bottom-placeholder token="{{ placeholder_token|raw }}">
  </body>
</html>

Ausgabebild:

(enter image description here

HINWEIS: Dies ist meine eigene Logik und ich habe versucht, eine Referenz dafür zu finden. Ich habe keine Referenz dazu gefunden, außer einer Die Zeile wird vom Fragesteller im obigen Link bereitgestellt. Da wir jedoch die Vorlagendatei bearbeiten, um andere Inhalte hinzuzufügen, können wir keine Tags hinzufügen. BITTE GEBEN SIE KOMMENTARE AN, WENN DIESES IS KEIN RICHTIGER WEG IST, wird es auch eine Lernerfahrung für mich sein, danke.


3. Erstellen Sie Ihr eigenes benutzerdefiniertes Modul

Wenn Sie sich auf dieses Tutorial beziehen von: Hinzufügen neuer HTML-Tags in in Drupal 8 , hat er die allgemeine Methode zum Hinzufügen von Tags zu head in Drupal 8 beschrieben Ich habe gemäß Ihrer Anforderung geändert. Sie können sich auf dieses Tutorial beziehen: Drupal 8: Erstellen eines einfachen Moduls für die Entwicklung eines einfachen Moduls in Drupal 8, und der folgende Code wird in Ihre Datei module_name.module aufgenommen .

für module_name.module Datei,

<?php
/**
 * Implements hook_page_attachments().
 */
function module_name_page_attachments(array &$page) {
  $xuacompatible = [
        '#tag' => 'meta',
        '#attributes' => [
          'http-equiv' => 'x-ua-compatible',
          'content' => 'ie=Edge',
        ],
      ];
  $page['#attached']['html_head'][] = [$xuacompatible, 'x-ua-compatible'];
}

Ich denke, diese Methode und die in der ersten Option beschriebene Methode sind ziemlich gleich.


4. Verwenden des Moduls Drupal

Ich bin mir nicht sicher, wie ich diesen Ansatz verwenden soll, versuchte ich zu finden. Hier erwähne ich, dass dieses Modul immer angezeigt wird, wenn Meta-Tags hinzugefügt werden.

Ich denke, diesen Ansatz sollten Sie verwenden. In der akzeptierten Antwort hat er den Modulweg beschrieben und Sie können dafür das Modul Metatag verwenden. Dieses Modul hat abhängige Module Token & Ctools , was sehr häufig vorkommt. In dieser Antwort wurde das gesamte Verfahren beschrieben, daher erwähne ich es hier nicht.

50
CodeNext

Wenn Sie einem Controller, Block, einer Entität, einem Feld oder anderen Stellen Inhalte hinzufügen, müssen Sie keinen Hook erstellen.

Sie können das Meta-Tag direkt zu einem beliebigen Thema oder Renderelement hinzufügen (#theme, #type, #markup):

$build['username'] = [
  '#theme' => 'username',
  '#account' => \Drupal::currentUser(),
  '#attached' => [
    'html_head' => [
      [
        [
          '#tag' => 'meta',
          '#attributes' => [
            'name' => 'foo',
            'content' => 'bar',
          ],
        ],
        'my_module_foo',
      ],
    ],
  ],
];

Beim Rendern sprudelt das Tag bis zur Seitenebene und wird dem Abschnitt <head>...</head> Hinzugefügt.

In einem Preprocess-Hook können Sie an die oberste Ebene von $variables Anhängen, siehe https://drupal.stackexchange.com/a/288989/47547

4
4k4

Hier können wir das Metatag-Modul verwenden.

Wir müssen das Submodul Metatag: Mobile & UI Adjustments aktivieren.

Nachdem wir dies auf der Metatag-Konfigurationsseite getan haben, können wir Windows und Windows Mobile unter jedem Metatag-Typ sehen und gemäß unserer Anforderung können wir entweder globale oder seitenspezifische X-UA-kompatible Inhalte hinzufügen.

0
Vidit Anjaria