1

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

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

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

4

1 回答 1

2

有一种更简单的方法,您确实需要记住,虽然不是每个页面都是节点页面,也不是每个节点页面都是正确的内容类型,因此您应该有选择性。只需将其添加到主题的 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 不会拾取它。

于 2011-10-12T07:48:35.547 回答