版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/henryhu712/article/details/81040696
直接的方法如下:
$node = node_load($nid);
$field_val = $node->field_name['und'][0]['value'];
用这个方法来获取字段的值有几个问题:
- 多语言无法处理
- 文本字段是[0][‘value’],但其他类型的字段并不适用,例如引用字段就是 [0][‘target_id’]
下面适用api方法获取字段值:
$node = node_load($nid);
$fields = field_get_items('node', $node, 'field_name');
$field_wrap = field_view_value('node', $node, 'field_name', $fields[0]);
$fval = $field_wrap['#markup'];
从上面可以看出,Drupal为了封装node接口,引入很多接口函数,并没有简化问题。这些复杂性只有在处理多个场景时才会体现出优势,通常遇到的问题并不复杂,因此适用Drupal的api反而增加了复杂性。