You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Drupal 7中覆盖已添加的meta标签?

如何在Drupal中覆盖主题添加的viewport Meta标签

要覆盖主题里的这个viewport设置,关键在于使用和主题代码完全相同的标识符(第二个参数),并且确保你的代码在主题的代码之后执行。

核心原因

主题里的代码用了bootstrap_responsive作为drupal_add_html_head()的第二个参数,这个参数是该HTML头部元素的唯一标识。如果你的代码不指定这个相同的标识,Drupal会把它当成一个新的meta标签添加,而不是覆盖原来的。

完整的覆盖代码

你需要补全代码,并且指定相同的key:

drupal_add_html_head(array(
  '#tag' => 'meta',
  '#attributes' => array(
    'name' => 'viewport',
    'content' => 'maximum-scale=1.0' // 你的自定义内容
  ),
), 'bootstrap_responsive'); // 必须和主题里的key一致!

确保代码执行顺序

为了让你的代码覆盖主题的设置,需要保证它在主题的代码之后运行:

  • 如果你是在自定义模块里写,推荐用hook_page_build()或者hook_preprocess_html()(可以给钩子设置更高的权重,确保晚执行)
  • 或者在自定义主题的template.php里使用hook_preprocess_html(),子主题的代码会在父主题之后执行,刚好能覆盖父主题的设置

举个模块里的hook_page_build示例:

function yourmodule_page_build(&$page) {
  drupal_add_html_head(array(
    '#tag' => 'meta',
    '#attributes' => array(
      'name' => 'viewport',
      'content' => 'maximum-scale=1.0'
    ),
  ), 'bootstrap_responsive');
}

这样就能完全替换掉主题里原来的viewport设置,不需要修改主题供应商的文件啦。

内容的提问来源于stack exchange,提问作者igorpavlov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 07:45:49