Відповіді:
З різних джерел я знайшов різний спосіб додавання метатегів у Drupal 8, отже, компілюючи всі способи.
Я думаю, те саме питання було задано і при ставці потоку: додайте метатег до голови в drupal 8, і якщо ви бачите відповідь @Danielishko , він надав наступний код,
Просто додайте у свій THEME.theme
файл наступний код , очистіть кеш, і ви будете готові йти. Примітка: function theme_preprocess_html(&$variables) {...}
має бути вже у вашому файлі .theme, отже, не створюйте новий, інакше це призведе до помилки.
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'];
}
Вихідне зображення:
На цю тему було задано ще одне запитання: Як встановити / видалити мета-теги drupal 8 .
Якщо ви читаєте питання у згаданому посиланні, запитувач зазначив, що за допомогою html.html.twig
шаблонного файлу ви можете безпосередньо додавати метатеги до<head>....</head>
html.html.twig
Файл, який ви можете знайти core/modules/sytem/templates/html.html.twig
, Ви можете скопіювати та вставити його в папку шаблонів вашої теми, і ваша тема буде використовувати його.
з 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>
Вихідне зображення:
ПРИМІТКА. Це моя власна логіка, і я намагався знайти посилання на це, я не знайшов посилання на це, за винятком одного рядка, який надає Questioner у верхньому посиланні, але оскільки ми редагуємо файл шаблону для додавання інших матеріалів, чому ми не можемо використовувати для додавання теги. ПРОСЛУЖАЙТЕ КОМЕНТАРИ, ЯКЩО ЦЕ НЕ ПРАВИЛЬНИЙ ШЛЯХ ДІЙСНЯ, це також буде для мене досвідом навчання, дякую
Якщо ви посилаєтесь на цей підручник із: Додавання нових тегів HTML у в Drupal 8 , Він описав загальний спосіб додавання тегів до голови в Drupal 8. Я змінив відповідно до вашої вимоги. Ви можете посилатися на цей підручник: Drupal 8: Створіть простий модуль, як розробити простий модуль в Drupal 8, а наступний код увійде у файл module_name.module, ось і все.
для module_name.module
файлу,
<?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'];
}
Я думаю, цей спосіб і спосіб, описані в 1-му варіанті, цілком однакові.
Я не впевнений, як використовувати такий підхід, я намагався знайти. Тут я згадую, тому що коли додається мета-теги, цей модуль завжди з'являється.
Я думаю, цей підхід вам слід використовувати. У прийнятій відповіді він описав спосіб модуля, і ви можете використовувати для цього модуль Metatag . Цей модуль має залежні модулі Token & Ctools , що дуже часто. У цій відповіді описана ціла процедура, тому я тут не згадую.
Додаючи вміст до контролера, блоку, об'єкта, поля чи інших місць, вам не потрібно створювати гачок.
Ви можете додати мета - тег безпосередньо до будь-якої теми або візуалізації елемента ( #theme
, #type
, #markup
):
$build['username'] = [
'#theme' => 'username',
'#account' => \Drupal::currentUser(),
'#attached' => [
'html_head' => [
[
[
'#tag' => 'meta',
'#attributes' => [
'name' => 'foo',
'content' => 'bar',
],
],
'my_module_foo',
],
],
],
];
Коли візуалізовані теги бульбашки до рівня сторінки і додаються до <head>...</head>
розділу.
У гачку попередньої обробки, яку можна приєднати до верхнього рівня $variables
, див. Https://drupal.stackexchange.com/a/288989/47547
Ви можете та маєте використовувати гачок alter для вкладень сторінки у вашій темі.
function THEME_page_attachments_alter(array &$page) {
$page['#attached']['library'][] = 'theme_name/main';
}