【问题标题】: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 不会拾取它。

    【讨论】:

      最近更新 更多