回答:
さまざまなソースから、Drupal 8でメタタグを追加するさまざまな方法を見つけたため、すべての方法をコンパイルしました。
stakeoverflowでも同じ質問が行われたと思います。メタタグを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>
出力画像:
注: これは私自身のロジックであり、この参照を見つけようとしましたが、上記のリンクの質問者が提供する1行を除き、これに関する参照は見つかりませんでしたが、追加に使用できないテンプレートファイルを編集するため、タグ。これが正しい方法ではない場合は、コメントを提供してください、それは私にとっても学習経験になるでしょう、ありがとう。
このチュートリアルを参照する場合、Drupal 8で新しいHTMLタグを追加する、Drupal 8で頭にタグを追加する一般的な方法を説明しました。要件に応じて変更しました。このチュートリアルを参照できます。Drupal8: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
ます/drupal//a/288989/47547を参照してください
テーマでページの添付ファイルにalterフックを使用できます。
function THEME_page_attachments_alter(array &$page) {
$page['#attached']['library'][] = 'theme_name/main';
}