Với Drupal 8.0 beta2, drupal_add_html_head()
đã không được ủng hộ #attached
. Vì vậy, cách cũ là:
function MYTHEME_page_build(&$page) {
$viewport = array(
'#type' => 'html_tag',
'#tag' => 'meta',
'#attributes' => array(
'name' => 'viewport',
'content' => 'width=device-width, initial-scale=1.0, maximum-scale=2.0, minimum-scale=0.55, user-scalable=yes',
),
);
drupal_add_html_head($viewport, 'viewport');
}
Dựa trên thông báo thay đổi mà bạn hiện đang sử dụng #attached
. Vì vậy, mã ở trên về cơ bản là giống nhau với phần cuối cùng thay đổi thành:
$build['#attached']['html_head'][] = [$viewport, 'viewport'];
Điều này không hoạt động mặc dù và không có thông báo lỗi trong watchdog. Tôi cũng đã cố gắng đặt này trong một trang thay đổi cũng như trao đổi $build
với $variables
và $output
nhưng nó vẫn không làm việc. Ngoài ra, tôi đã thử toàn bộ mọi thứ như một mảng:
$build['#attached']['html_head'][] = array(
'#type' => 'html_tag',
'#tag' => 'meta',
'#attributes' => array(
'name' => 'viewport',
'content' => 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no',
),
);
... nhưng điều đó cũng không hoạt động. Tôi không chắc mình đang làm gì sai, có vẻ như nó nên hoạt động.
Cập nhật
Đây là mã làm việc sử dụng hook_page_attachments_alter
không có trong D8 Beta 2 vì nó vừa được cam kết với dev.
function MYTHEME_page_attachments_alter(array &$page) {
$viewport = array(
'#type' => 'html_tag',
'#tag' => 'meta',
'#attributes' => array(
'name' => 'viewport',
'content' => 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no',
),
);
$page['#attached']['html_head'][] = [$viewport, 'viewport'];
}
Vấn đề duy nhất bây giờ là thẻ viewport của core không bị ghi đè nên tôi bị kẹt với thẻ tùy chỉnh và core của tôi. Không chắc chắn làm thế nào để xử lý cái đó hoặc thẻ của tôi nên ghi đè lên lõi?