如下:例如,我有一个带有归档"data_field"的自定义内容类型。我想在侧边栏上有一个块,可以正确处理和显示此"data_field"字段的数据。如何使用Drupal API访问它?
附言我知道这个问题可以通过某种方式使用 Views 来解决,它具有特定于内容的显示能力,但由于 API,我对它的实现方式感兴趣。
要使用内容类型的默认 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"(等等)而不是"值",文本字段也有"safe_value",它应用了输入格式过滤,长文本字段将有"摘要"和"safe_summary",等等。