0

案例如下:例如,我有一个带有“data_field”字段的自定义内容类型。我想在侧边栏上有一个块,可以正确处理和显示这个“data_field”字段的数据。如何使用 Drupal API 访问它?

PS 我知道这个问题可以通过 Views 以某种方式解决,它具有特定于内容的显示能力,但我对它通过 API 实现的方式很感兴趣。

4

1 回答 1

1

使用内容类型的默认 Drupal 设置呈现字段:

$n = node_load($nid_of_content);
$n = node_view($n);
print render($n['field_somevalue']);

您也可以指定节点显示格式,例如

$n = node_view($n, 'teaser');

如果您想以不同的方式操作字段内容,请使用原始字段值:

$n = node_load($nid_of_content);
$value_you_want = $n->field_data_field_somevalue['und'][0]['value'];

这假设您没有使用任何语言/翻译功能 - 'und' 代表“未定义”并声明没有为节点显式设置语言。

如果字段可以包含多个值,则遍历 ['und'][0]['value'] 到 ['und'][x]['value']

上面的代码显示了大多数字段类型的原始值。在开发过程中使用 print_r($n->field_somevalue) 找出哪些值可供您使用;这取决于字段类型。例如,文件类型为您提供“uri”(以及其他)而不是“值”,文本字段也具有应用了输入格式过滤的“安全值”,长文本字段将具有“摘要”和“安全摘要”等。

于 2012-08-08T06:50:49.773 回答