将字段内容注入Drupal 7中的html.tpl.php

将字段内容注入Drupal 7中的html.tpl.php,php,drupal,drupal-7,drupal-theming,Php,Drupal,Drupal 7,Drupal Theming,我正在尝试创建一种内容类型,它可以根据您所处的页面使用不同样式的jQuery库进行重用 所以我创建了一个名为field_CSS的字段,我把CSS放在这里。然而,出于性能原因(以及为了清理代码),我想把它放在HEAD部分 head部分中的内容在html.php.tpl-filde中呈现,字段位于特定节点的内容类型中 我试过 和许多其他变体。有谁知道该写什么才能让它显示在html.tpl.php文件中 该字段仅包含现在作为内联代码打印的纯CSS 编辑:克莱夫·波斯特的作品完美无瑕。只是别忘了修复字段

我正在尝试创建一种内容类型,它可以根据您所处的页面使用不同样式的jQuery库进行重用

所以我创建了一个名为field_CSS的字段,我把CSS放在这里。然而,出于性能原因(以及为了清理代码),我想把它放在HEAD部分

head部分中的内容在html.php.tpl-filde中呈现,字段位于特定节点的内容类型中

我试过

和许多其他变体。有谁知道该写什么才能让它显示在html.tpl.php文件中

该字段仅包含现在作为内联代码打印的纯CSS


编辑:克莱夫·波斯特的作品完美无瑕。只是别忘了修复字段主题,这样你就不会在css部分得到一个div。

该节点通常在html.tpl.php中不可用,因此你需要在预处理函数中手动获取字段内容。在主题的模板文件中放入类似的内容:

function MYTHEME_preprocess_html(&$vars) {
  $node = menu_get_object();

  if ($node && isset($node->nid)) {
    $node = node_load($node->nid);

    node_build_content($node);

    $vars['extra_css'] = render($node->content['field_CSS']);
  } 
}
然后将在html.tpl.php中包含变量
$extra_css
,该变量将包含渲染字段。一旦实现了预处理功能,就需要刷新缓存,并用主题的名称替换
MYTHEME


希望这有帮助

因此,我将代码添加到template.php,并在html.tpl.php-file中添加了$extra_css。html.tpl.php看起来像,但内容(现在不是css,只是文本)不会显示在页面上。但是,消息“var extra_css未定义”已经消失,因此应该是可见的。(是的,我刷新了缓存等)谢谢你这么快的回答。我很糟糕,我忘了
node\u build\u content()。对于阅读本文的其他人:不要忘记更改themefolder中field--field_FIELDNAME.tpl.php中的字段显示选项。你有关于这类事情的好教程的链接吗?很高兴它有帮助:)考虑具体的教程有点棘手,因为这种方法使用了一些不同的Drupal规程,有一个很好的页面解释了主题生命周期是如何工作的,以及如何将变量传递给主题。首先,如何获取这些变量是另一回事,
menu\u get\u object()
将始终为您获取节点对象,如果您位于节点页面上,那么您应该能够获得良好的基础很多,我指的是一个全功能的修复(包括代码和所有)在不到30分钟的时间内,这比大多数公司的高级支持要好。