Risposte:
Da fonti diverse ho trovato un modo diverso di aggiungere meta tag in Drupal 8, quindi compilando tutti i modi.
Penso che la stessa domanda sia stata posta su stakeoverflow: aggiungi meta tag a testa in drupal 8 e se vedi la risposta di @Danielishko , ha fornito il seguente codice,
Aggiungi il seguente codice nel tuo THEME.theme
file, svuota la cache e sarai a posto. Nota: function theme_preprocess_html(&$variables) {...}
dovrebbe essere già presente nel tuo file .theme, quindi non crearne uno nuovo, altrimenti genererà un errore.
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'];
}
Immagine di uscita:
È stata posta un'altra domanda su questo argomento: come impostare / rimuovere i meta tag drupal 8 .
Se leggi la domanda nel link sopra menzionato, Questioner ha menzionato che usando il html.html.twig
file modello puoi aggiungere direttamente i meta tag<head>....</head>
html.html.twig
file che puoi trovare in core/modules/sytem/templates/html.html.twig
, puoi copiarlo e incollarlo nella cartella del modello del tuo tema e il tuo tema lo userà.
a partire dal 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>
Immagine di uscita:
NOTA: questa è la mia logica e ho cercato di trovare un riferimento per questo, non ho trovato alcun riferimento a riguardo tranne una riga fornita da Interrogatore nel link sopra, ma poiché modifichiamo il file modello per aggiungere altre cose perché non possiamo usare per aggiungere tag. PER FAVORE, COMMENTI SE QUESTO NON È UN MODO GIUSTO DA FARE, sarà anche un'esperienza di apprendimento per me, grazie.
Se fai riferimento a questo tutorial di: Aggiunta di nuovi tag HTML in Drupal 8 , Ha descritto il modo generale di aggiungere tag per andare a capo in Drupal 8. Ho modificato secondo le tue esigenze. Puoi fare riferimento a questo tutorial: Drupal 8: Crea un modulo semplice per come sviluppare un modulo semplice in Drupal 8, e il codice seguente andrà nel tuo file module_name.module, tutto qui.
per module_name.module
file,
<?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 che questo metodo e il metodo descritti nella prima opzione siano abbastanza uguali.
Non sono sicuro di come utilizzare questo approccio, ho cercato di trovare. Qui sto citando perché quando arriva il punto di aggiungere meta tag questo modulo appare sempre pop-up.
Penso che questo approccio che dovresti usare. Nella risposta accettata ha descritto il modo del modulo e puoi usare il modulo Metatag per questo. Questo modulo ha moduli dipendenti Token & Ctools , cosa molto comune. In quella risposta è stata descritta l'intera procedura, quindi non sto citando qui.
Quando si aggiunge contenuto a un controller, blocco, entità, campo o altri luoghi non è necessario creare un hook.
È possibile aggiungere il meta tag direttamente a qualsiasi tema o rendere 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 viene eseguito il rendering, il tag passa a livello di pagina e viene aggiunto alla <head>...</head>
sezione.
In un hook di preelaborazione è possibile collegare al livello superiore di $variables
, consultare /drupal//a/288989/47547
Puoi e dovresti usare il gancio di modifica per gli allegati di pagina nel tuo tema.
function THEME_page_attachments_alter(array &$page) {
$page['#attached']['library'][] = 'theme_name/main';
}