このように_entity_metadata_wrapper
_を使用してフィールドを取得できます
_$node = node_load($nid);
$node_wrapper = entity_metadata_wrapper('node', $node, array(
'langcode' => $GLOBALS['language'],
'bundle' => 'unit'
)
);
$field_value = $node_wrapper->field_photo->value();
_
そして、それは私がレンダリングする方法がわからない配列を返します。私はdrupal_render()
を試しましたが、うまくいかないようです。
それで、このフィールドをどのようにレンダリングできますか?
写真フィールドは画像フィールドですか? value()関数は、画像にリンクされた実際のファイルデータである配列を返します。レンダリングする(またはレンダリング可能なビルドを作成する)には、たとえば、<img>タグを出力するtheme_image
関数を使用できます。
$node = node_load(43);
$node_wrapper = entity_metadata_wrapper('node', $node, array(
'langcode' => $GLOBALS['language'],
'bundle' => 'subject'
));
$field_value = $node_wrapper->field_teaser_image->value();
$build = array(
'#theme' => 'image',
'#path' => $field_value['uri'],
'#alt' => $field_value['alt'],
'#title' => $field_value['title'],
'#width' => $field_value['width'],
'#height' => $field_value['height'],
);
print drupal_render($build);