Respostas:
De fontes diferentes, encontrei uma maneira diferente de adicionar meta tags no Drupal 8, portanto, compilando todas as formas.
Acho que a mesma pergunta foi feita no stakeoverflow: adicione a metatag à cabeça no drupal 8 e, se você vir a resposta de @Danielishko , ele forneceu o seguinte código,
Basta adicionar o seguinte código no seu THEME.theme
arquivo, limpar o cache e você estará pronto. Nota: function theme_preprocess_html(&$variables) {...}
já deve estar lá no seu arquivo .theme, portanto, não crie um novo, caso contrário, ocorrerá um erro.
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'];
}
Imagem de saída:
Outra pergunta foi feita sobre este tópico: Como configurar / remover as metatags drupal 8 .
Se você ler a pergunta no link acima mencionado, o Questioner mencionou que, usando o html.html.twig
arquivo de modelo, você pode adicionar diretamente metatags às<head>....</head>
html.html.twig
arquivo que você pode encontrar em core/modules/sytem/templates/html.html.twig
, Você pode copiar e colar isso na pasta de modelos do seu tema e o seu tema usará esse.
a partir de 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>
Imagem de saída:
NOTA: Esta é minha própria lógica e tentei encontrar referência para isso, não encontrei nenhuma referência a esse respeito, exceto uma linha fornecida pelo Questionador no link acima, mas como editamos o arquivo de modelo para adicionar outras coisas, por que não podemos adicionar Tag. FORNECER COMENTÁRIOS SE ESTA NÃO É A MANEIRA CERTA DE FAZER, Também será uma experiência de aprendizado para mim, obrigado.
Se você se referir a este tutorial: Adicionando novas tags HTML no Drupal 8 , Ele descreveu a maneira geral de adicionar tags à cabeça no Drupal 8. Modifiquei conforme sua exigência. Você pode consultar este tutorial: Drupal 8: Crie um módulo simples para saber como desenvolver um módulo simples no Drupal 8, e o código a seguir aparecerá no seu arquivo module_name.module, é isso.
para module_name.module
arquivo
<?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'];
}
Penso que este método e o método descritos na 1ª opção são iguais.
Não tenho certeza, como usar essa abordagem, tentei encontrar. Aqui estou mencionando, porque quando o ponto de adicionar metatags vem esse módulo sempre pop-up.
Eu acho que essa abordagem você deve usar. Na resposta aceita, ele descreve a maneira do módulo e você pode usar o módulo Metatag para isso. Este módulo possui módulos dependentes Token & Ctools , o que é muito comum. Nessa resposta, todo o procedimento foi descrito, portanto, não estou mencionando aqui.
Ao adicionar conteúdo a um controlador, bloco, entidade, campo ou outro local, você não precisa criar um gancho.
Você pode adicionar a meta tag diretamente a qualquer tema ou tornar elemento ( #theme
, #type
, #markup
):
$build['username'] = [
'#theme' => 'username',
'#account' => \Drupal::currentUser(),
'#attached' => [
'html_head' => [
[
[
'#tag' => 'meta',
'#attributes' => [
'name' => 'foo',
'content' => 'bar',
],
],
'my_module_foo',
],
],
],
];
Quando renderizada, a tag borbulha até o nível da página e é adicionada à <head>...</head>
seção.
Em um gancho de pré-processo, você pode anexar ao nível superior de $variables
, consulte /drupal//a/288989/47547
Você pode e deve usar o alter hook para anexos de página no seu tema.
function THEME_page_attachments_alter(array &$page) {
$page['#attached']['library'][] = 'theme_name/main';
}