Câu trả lời:
Từ các nguồn khác nhau, tôi tìm thấy cách thêm các thẻ meta khác nhau trong Drupal 8, do đó biên dịch tất cả các cách.
Tôi nghĩ rằng câu hỏi tương tự đã được hỏi về dòng chảy bên ngoài: thêm thẻ meta vào đầu trong drupal 8 và nếu bạn thấy câu trả lời của @Danielishko , anh ấy đã cung cấp mã sau đây,
Chỉ cần thêm mã sau vào THEME.theme
tệp của bạn , xóa bộ nhớ cache và bạn sẽ ổn. Lưu ý: function theme_preprocess_html(&$variables) {...}
nên đã có sẵn trong tệp .theme của bạn, do đó không tạo tệp mới, nếu không nó sẽ báo lỗi.
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'];
}
Hình ảnh đầu ra:
Một câu hỏi khác đã được hỏi về chủ đề này: Làm thế nào để thiết lập / xóa 8 thẻ meta drupal .
Nếu bạn đọc câu hỏi trong liên kết được đề cập ở trên, Người hỏi đã đề cập rằng bằng cách sử dụng html.html.twig
tệp mẫu, bạn có thể trực tiếp thêm thẻ meta vào<head>....</head>
html.html.twig
tệp bạn có thể tìm thấy tại core/modules/sytem/templates/html.html.twig
, Bạn có thể sao chép và dán tệp đó vào thư mục mẫu của chủ đề và chủ đề của bạn sẽ sử dụng tệp đó.
từ 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>
Hình ảnh đầu ra:
LƯU Ý: Đây là logic riêng của tôi và đã cố gắng tìm tài liệu tham khảo cho điều này, tôi không tìm thấy bất kỳ tài liệu tham khảo nào về vấn đề này ngoại trừ một dòng do Người hỏi cung cấp trong liên kết ở trên, nhưng vì chúng tôi chỉnh sửa tệp mẫu để thêm các nội dung khác tại sao chúng tôi không thể sử dụng để thêm thẻ. XIN VUI LÒNG CUNG CẤP Ý KIẾN NẾU ĐÂY KHÔNG PHẢI LÀ MỘT CÁCH QUYỀN ĐỂ LÀM, Nó cũng sẽ học hỏi kinh nghiệm cho tôi, Cảm ơn.
Nếu bạn tham khảo hướng dẫn này về: Thêm các thẻ HTML mới trong Drupal 8 , anh ấy đã mô tả cách chung để thêm thẻ vào đầu trong Drupal 8. Tôi đã sửa đổi theo yêu cầu của bạn. Bạn có thể tham khảo hướng dẫn này: Drupal 8: Tạo Mô-đun đơn giản để biết cách phát triển mô-đun đơn giản trong Drupal 8 và mã sau sẽ đi vào tệp module_name.module của bạn, đó là nó.
cho module_name.module
tập tin,
<?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'];
}
Tôi nghĩ rằng, phương pháp và phương pháp này được mô tả trong tùy chọn 1 khá giống nhau.
Tôi không chắc chắn, làm thế nào để sử dụng phương pháp này, tôi đã cố gắng để tìm. Ở đây tôi đang đề cập bởi vì khi điểm thêm thẻ meta xuất hiện, mô-đun này luôn bật lên.
Tôi nghĩ rằng phương pháp này bạn nên sử dụng. Trong câu trả lời được chấp nhận, anh ta đã mô tả cách mô-đun và bạn có thể sử dụng, mô-đun Metatag cho điều đó. Mô-đun này có các mô-đun phụ thuộc Token & Ctools , đây là điều rất phổ biến. Trong câu trả lời đó, toàn bộ quy trình đã được mô tả, vì vậy tôi không đề cập ở đây.
Khi thêm nội dung vào bộ điều khiển, khối, thực thể, trường hoặc các vị trí khác bạn không cần tạo móc.
Bạn có thể thêm thẻ meta trực tiếp đến bất kỳ chủ đề hoặc làm cho phần tử ( #theme
, #type
, #markup
):
$build['username'] = [
'#theme' => 'username',
'#account' => \Drupal::currentUser(),
'#attached' => [
'html_head' => [
[
[
'#tag' => 'meta',
'#attributes' => [
'name' => 'foo',
'content' => 'bar',
],
],
'my_module_foo',
],
],
],
];
Khi kết xuất thẻ bong bóng lên đến cấp độ trang và được thêm vào <head>...</head>
phần.
Trong móc tiền xử lý, bạn có thể đính kèm vào cấp cao nhất $variables
, xem /drupal//a/288989/47547
Bạn có thể và nên sử dụng móc thay đổi cho tệp đính kèm trang trong chủ đề của mình.
function THEME_page_attachments_alter(array &$page) {
$page['#attached']['library'][] = 'theme_name/main';
}