ด้วย Drupal 8.0 beta2, drupal_add_html_head()
ได้รับการคัดค้าน#attached
ในความโปรดปรานของ ดังนั้นวิธีเดิมคือ:
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');
}
บนพื้นฐานของการสังเกตเห็นความเปลี่ยนแปลง#attached
ในขณะนี้คุณใช้ ดังนั้นรหัสข้างต้นเป็นหลักเดียวกันกับส่วนสุดท้ายเปลี่ยนเป็น:
$build['#attached']['html_head'][] = [$viewport, 'viewport'];
นี้ไม่ทำงานแม้ว่าและไม่มีข้อความแสดงข้อผิดพลาดในจ้องจับผิด ฉันยังได้พยายามวางนี้ในหน้าแก้ไขเช่นเดียวกับการแลกเปลี่ยน$build
ด้วย$variables
และ$output
แต่ก็ยังไม่ได้ทำงาน นอกจากนี้ฉันได้ลองทั้งหมดเป็นอาร์เรย์:
$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',
),
);
... แต่นั่นก็ไม่ได้ผลเช่นกัน ฉันไม่แน่ใจว่าสิ่งที่ฉันทำผิดดูเหมือนว่าควรจะทำงาน
ปรับปรุง
นี่คือรหัสการทำงานที่ใช้hook_page_attachments_alter
ซึ่งไม่ได้อยู่ใน D8 Beta 2 เพราะมันมุ่งมั่นที่จะพัฒนา
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'];
}
ปัญหาเฉพาะตอนนี้คือแท็กวิวพอร์ตของคอร์นั้นไม่ได้ถูกเขียนทับดังนั้นฉันจึงติดกับแท็กที่กำหนดเองและคอร์ของฉัน ไม่แน่ใจวิธีจัดการแท็กนั้นหรือแท็กของฉันควรจะเขียนทับแกนหรือไม่