【问题标题】:Displaying a Drupal content type field outside of a node在节点外显示 Drupal 内容类型字段
【发布时间】:2025-06-28 10:10:02
【问题描述】:
我在 Drupal 7 中的内容类型上创建了一个自定义字段,我需要将其显示在节点之外,在页面上的单独区域中。
类似于 $title 变量的工作方式(您可以将其放置在 page.tpl.php 文件中您喜欢的位置)我希望能够创建另一个名为 $subtitle 的变量,该变量将从当前节点并允许我在 page.tpl.php 文件的某个区域中打印出变量。
我看到一个视图示例似乎使用视图和块来完成此任务,但这似乎有点过分,想知道是否有更简单的方法。
【问题讨论】:
标签:
drupal
drupal-7
custom-fields
【解决方案1】:
有一种更简单的方法,您需要牢记的是,并非每个页面都是节点页面,也不是每个节点页面都是正确的内容类型,因此您应该有所选择。只需将其添加到主题的 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 不会拾取它。