Drupal 6:从节点参考类型中获取特定字段

时间:2010-06-03 11:36:14

标签: drupal drupal-6 field drupal-theming

我是一个drupal新手...

<?php print $node->field_date[0]['view']; ?>

我可以获得自定义创建的CCK字段的值并在tpl.php文件中显示如上...这很好。

我的问题是如何获取节点参考字段的字段?例如,我有一个事件内容类型,我已经定义了位置的节点参考(标题,地址,img等)。当我编写下面的代码时,它会显示所有位置内容;

<?php print $node->field_location[0]['view']; ?>

但我需要从此位置内容类型中仅获取地址字段。 ......如下所示会很棒:D但不起作用;

<?php print $node->field_location[0]['field_address']['view']; ?>

那怎么能那样呢?非常感谢帮助!非常感谢!

2 个答案:

答案 0 :(得分:1)

您应该检查/转储$node->field_location数组的内容。我现在手边没有测试安装,所以我不能肯定地说,但我希望至少引用的节点id('nid')应该在某个地方的那个数组中。有了它,您可以执行node_load($nid),它返回完整的节点对象,从而提供对字段的访问。

(如上所述,我不确定,但字段数组可能已经包含整个节点对象,从而使您无需明确加载它。)

答案 1 :(得分:0)

$node->field_location[0]['view'];返回内容类型定义的显示字段部分中定义的节点。这可能对您有利。您可以欺骗它:为该节点使用 Teaser 显示并自定义节点Teaser显示以满足您的需要。只是一个想法。

如果这对您不起作用,则需要单独加载节点。您可以使用$node->field_location[0]['nid'];获取节点ID,因此最终会得到以下内容:

node_load($node->field_location[0]['nid'])->field_address[0]['view']

我不确定这是如何表现的......