php - Drupal 7 如何呈现自定义字段

标签 php drupal drupal-7

我在基本页面内容类型中添加了一个名为“field_header”的自定义字段。我如何访问 page.tpl.php 模板上的这个字段以便我可以在任何我想要的地方显示它?理想情况下,我也想从 $content 中删除它。谢谢!

最佳答案

不要忘记并非每个页面都一定是节点页面,因此您最好尝试在 node.tpl.php 中访问它,而不是 page.tpl.php

node.tpl.php 中,您可以像这样呈现特定字段:

echo render($content['field_header']);
hide($content['field_header']); // This line isn't necessary as the field has already been rendered, but I've left it here to show how to hide part of a render array in general.

如果您绝对必须在 page.tpl.php 中执行此操作,那么您需要在您的模板文件中实现一个预处理函数以获取您需要的变量:

function mymodule_preproces_page(&$vars) {
  if ($node = menu_get_object() && $node->type == 'page') {
    $view = node_view($node);
    $vars['my_header'] = render($view['field_header']);
  }
}

然后在 page.tpl.php 中,您将可以访问包含完整呈现字段的变量 $my_header

关于php - Drupal 7 如何呈现自定义字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8074485/

相关文章:

php - 在继承树中获取 PHP 对象的祖先

drupal - 显示 YouTube 视频主页 Drupal

html - 将 .field-item 图像 float 到内容类型的左侧而不是在 Drupal 中将其居中

php - drupal 插入或更新数据库记录只有一个功能

audio - 开始使用 mediaelement 播放的文件的播放计数

php - 在 php 中从 SQL 列添加整数

php - 为什么我的内连接查询不起作用

php - 获取最后 x 条记录的最佳方法是什么?使用 MySQL 限制和 ORDER DESC?

PHP 幻灯片无法在 Internet Explorer 上运行

drupal 7 不呈现自定义区域