Yanıtlar:
Farklı kaynaklardan, Drupal 8'de meta etiketler eklemenin farklı bir yolunu buldum, böylece tüm yolları derledim.
Ben aynı soru stakeoverflow üzerinde soruldu düşünüyorum: drupal 8 kafasına meta etiketi ekleyin ve @Danielishko cevabını görürseniz , Aşağıdaki kodu sağladı,
THEME.theme
Dosyanıza aşağıdaki kodu ekleyin , önbelleği temizleyin ve gitmekte fayda var. Not: function theme_preprocess_html(&$variables) {...}
.theme dosyanızda zaten var olmalıdır, bu nedenle yeni bir tane oluşturmayın, aksi takdirde hata verecektir.
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'];
}
Çıktı görüntüsü:
Bu konuda başka bir soru soruldu: drupal 8 meta etiketleri nasıl ayarlanır / kaldırılır .
Yukarıda belirtilen bağlantıda soruyu okuduysanız, Soru Sahibi html.html.twig
şablon dosyasını kullanarak doğrudan meta etiketler ekleyebileceğinizi belirtmiştir .<head>....</head>
html.html.twig
Bu dosyayı core/modules/sytem/templates/html.html.twig
kopyalayıp yapıştırabilir ve temanızın şablon klasörüne yapıştırabilirsiniz ve temanız bunu kullanır.
itibaren 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>
Çıktı Görüntü:
NOT: Bu benim kendi mantığım ve bunun için referans bulmaya çalıştı, yukarıdaki linkte bir satırda Soru Sorucusu tarafından sağlananlar dışında bununla ilgili herhangi bir referans bulamadık, ancak eklemek için kullanamadığımız başka şeyler eklemek için şablon dosyasını düzenlediğimiz için etiketleri. LÜTFEN BU DOĞRU YOL DEĞİLSE YORUMLAR SAĞLAYIN, aynı zamanda benim için öğrenme deneyimi olacak, teşekkürler.
Bu öğreticiye başvurursanız: Drupal 8'de yeni HTML etiketleri ekleme , Drupal 8'de başa etiket eklemenin genel yolunu açıkladı. Gereksiniminize göre değiştirdim. Bu eğiticiye başvurabilirsiniz: Drupal 8 : Drupal 8'de basit modülün nasıl geliştirileceği için Basit Bir Modül Oluşturun ve module_name.module dosyanızda aşağıdaki kod gidecek, hepsi bu.
için module_name.module
dosyanın,
<?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'];
}
Bence, 1. seçenekte açıklanan bu yöntem ve yöntem oldukça aynı.
Emin değilim, bu yaklaşımı nasıl kullanacağımı bulmaya çalıştım. Burada söz ediyorum çünkü meta etiket ekleme noktası bu modül her zaman açılır.
Bence bu yaklaşımı kullanmalısın. Kabul edilen cevapta modül yolunu tanımladı ve bunun için Metatag modülünü kullanabilirsiniz . Bu modülün çok yaygın olan Token & Ctools modüllerine sahiptir . Bu cevapta tüm prosedür tarif edilmiştir, bu yüzden burada bahsetmiyorum.
Bir denetleyiciye, engellemeye, varlığa, alana veya başka yerlere içerik eklerken kanca oluşturmanıza gerek yoktur.
Herhangi bir tema doğrudan meta etiketi ekleyebilir veya eleman işleyebilen ( #theme
, #type
, #markup
):
$build['username'] = [
'#theme' => 'username',
'#account' => \Drupal::currentUser(),
'#attached' => [
'html_head' => [
[
[
'#tag' => 'meta',
'#attributes' => [
'name' => 'foo',
'content' => 'bar',
],
],
'my_module_foo',
],
],
],
];
Oluşturulduğunda, etiket sayfa düzeyine kadar kabarcıklar oluşturur ve <head>...</head>
bölüme eklenir .
Bir üst işlem kancasında en üst seviyeye takabilirsiniz $variables
, bkz. Https://drupal.stackexchange.com/a/288989/47547
Temanızdaki sayfa ekleri için değiştirme kancasını kullanabilirsiniz ve kullanmalısınız.
function THEME_page_attachments_alter(array &$page) {
$page['#attached']['library'][] = 'theme_name/main';
}