在节点外部显示Drupal内容类型字段



我在Drupal 7中创建了一个内容类型的自定义字段,我需要在节点外部的页面上的单独区域中显示该字段。

类似于$title变量的工作方式(您可以将其放置在page.tpl.php文件中的位置),我希望能够创建另一个名为$subtitle的变量,该变量将从当前节点调用数据,并允许我在page.tpl.php文件的区域中打印出变量。

我看到过一个视图示例似乎使用视图和块来完成此任务,但这似乎有点过度,我想知道是否有更简单的方法

有一种更简单的方法,您需要记住,尽管不是每个页面都是节点页面,也不是每个节点页面都具有正确的内容类型,所以您应该有所选择。只需将此添加到主题的template.php文件中:

function mytheme_preprocess_node(&$vars) {
  $node = $vars['node'];
  if ($node->type == 'my_type') {
   $vars['subtitle'] = $node->field_my_field[LANGUAGE_NONE][0]['value'];
  }
}

然后在page.tpl.php中,你应该这样做:

if (isset($subtitle)) :
  echo $subtitle;
endif;

确保在template.php中实现钩子后清除缓存(admin/config/development/performance),否则Drupal不会拾取它。

相关内容

  • 没有找到相关文章

最新更新