Jawaban:
Dari sumber yang berbeda saya menemukan cara yang berbeda untuk menambahkan tag meta di Drupal 8, maka kompilasi semua cara.
Saya pikir pertanyaan yang sama telah ditanyakan pada stockoverflow: tambahkan meta tag ke kepala di drupal 8 dan jika Anda melihat jawaban dari @Danielishko , Dia telah memberikan kode berikut,
Cukup tambahkan kode berikut dalam THEME.theme
file Anda , hapus cache dan Anda akan baik-baik saja. Catatan: function theme_preprocess_html(&$variables) {...}
harus sudah ada di file tema. Anda, maka jangan membuat yang baru, jika tidak akan memberikan kesalahan.
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'];
}
Gambar output:
Pertanyaan lain ditanyakan tentang topik ini: Cara mengatur / menghapus tag metup 8 drupal .
Jika Anda membaca pertanyaan di tautan yang disebutkan di atas, Penanya telah menyebutkan bahwa menggunakan html.html.twig
file template Anda dapat langsung menambahkan tag meta<head>....</head>
html.html.twig
file yang dapat Anda temukan di core/modules/sytem/templates/html.html.twig
, Anda dapat menyalin dan menempelkannya di folder template tema Anda dan tema Anda akan menggunakannya.
dari 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>
Gambar Output:
CATATAN: Ini adalah logika saya sendiri dan mencoba mencari referensi untuk ini, saya tidak menemukan referensi mengenai hal ini kecuali satu baris yang disediakan oleh Penanya di tautan di atas, tetapi karena kami mengedit file template untuk menambahkan hal-hal lain mengapa kami tidak dapat menggunakan untuk menambahkan tag. HARAP MEMBERIKAN KOMENTAR JIKA INI BUKAN CARA YANG BENAR, Ini juga akan menjadi pengalaman belajar bagi saya, Terima kasih.
Jika Anda merujuk tutorial ini: Menambahkan tag HTML baru di dalam Drupal 8 , Dia telah menjelaskan cara umum menambahkan tag ke kepala di Drupal 8. Saya telah memodifikasi sesuai kebutuhan Anda. Anda dapat merujuk tutorial ini: Drupal 8: Buat Modul Sederhana untuk cara mengembangkan modul sederhana di Drupal 8, dan kode berikut akan masuk dalam file module_name.module Anda, itu saja.
untuk 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'];
}
Saya pikir, metode dan metode yang dijelaskan dalam opsi 1 ini cukup sama.
Saya tidak yakin, bagaimana cara menggunakan pendekatan ini, saya coba temukan. Di sini saya menyebutkan karena ketika titik menambahkan tag meta datang modul ini selalu muncul.
Saya pikir pendekatan ini harus Anda gunakan. Dalam jawaban yang diterima ia telah menjelaskan cara modul dan Anda dapat menggunakan, modul Metatag untuk itu. Modul ini memiliki modul dependen Token & Ctools , yang merupakan hal yang sangat umum. Dalam jawaban itu seluruh prosedur telah dijelaskan, jadi saya tidak menyebutkan di sini.
Saat menambahkan konten ke controller, blokir, entitas, bidang atau tempat lain Anda tidak perlu membuat hook.
Anda dapat menambahkan meta tag langsung ke tema atau membuat elemen ( #theme
, #type
, #markup
):
$build['username'] = [
'#theme' => 'username',
'#account' => \Drupal::currentUser(),
'#attached' => [
'html_head' => [
[
[
'#tag' => 'meta',
'#attributes' => [
'name' => 'foo',
'content' => 'bar',
],
],
'my_module_foo',
],
],
],
];
Ketika diberikan tag gelembung hingga ke tingkat halaman dan ditambahkan ke <head>...</head>
bagian.
Dalam kait praproses Anda dapat melampirkan ke tingkat atas $variables
, lihat /drupal//a/288989/47547
Anda dapat dan harus menggunakan kait pengait untuk lampiran halaman dalam tema Anda.
function THEME_page_attachments_alter(array &$page) {
$page['#attached']['library'][] = 'theme_name/main';
}