我在 Drupal 7 中的内容类型上创建了一个自定义字段,我需要将其显示在节点之外,在页面上的单独区域中。
类似于 $title 变量的工作方式(您可以将其放置在 page.tpl.php 文件中您喜欢的位置)我希望能够创建另一个名为 $subtitle 的变量,该变量将从当前节点调用数据并请允许我在 page.tpl.php 文件的某个区域中打印出变量。
我看过一个视图示例,似乎使用视图和块来完成此任务,但这似乎有点过分,想知道是否有更简单的方法。
我在 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 不会拾取它。