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ベータ2にはない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'];
}
現在の唯一の問題は、コアのビューポートタグが上書きされないため、カスタムタグとコアのスタックが表示されることです。それを処理する方法がわからない、または私のタグがコアのコアを上書きする必要がありますか?