Создание враппера для ноды по её nid
$node_wrapper = entity_metadata_wrapper('node', $nid);
Вторым параметром можно передать объект ноды
$node_wrapper = entity_metadata_wrapper('node', $node);
Получить значение свойства
$nid = $node_wrapper->nid->value();
// или
$node_wrapper->getIdentifier();
$title = $node_wrapper->title->value();
Получить значение свойства, пропущенного через check_plain()
$title = $node_wrapper->title->value(array('sanitize' => TRUE));
Получить значение поля
$field_value = $node_wrapper->field_name->value();
Получить первое значение multiple-value поля
$field_value = $node_wrapper->field_name[0]->value();
Получить значение составного поля
if ($node_wrapper->body->value()) {
$teaser = $node_wrapper->body->summary->value();
$body = $node_wrapper->body->value->value();
}
Получить первое значение составного multiple-value поля
if ($node_wrapper->field_tags->value()) {
$first_tag_name = $node_wrapper->field_tags[0]->name->value();
}
Получить значение поля для определённого языка
$field_value = $node_wrapper->language('ru')->field_name->value();
Обойти значения multiple-value поля
foreach ($node_wrapper->field_tags as $tag_wrapper) {
$tid = $tag_wrapper->tid->value();
$tag_name = $tag_wrapper->name->value();
}
Получить значение свойства у связанной сущности
$author = $node_wrapper->author->name->value();
$author_email = $node_wrapper->author->mail->value();
$author_roles = $node_wrapper->author->roles->optionsList();
$image_url = $node_wrapper->field_image->file->url->value();
Изменить свойство
$node_wrapper->title = 'New title' $node_wrapper->save();
Изменить свойство у связанной сущности
$node_wrapper->author->mail = 'newmail@gmail.com';
$node_wrapper->author->save();
Изменить поле
$node_wrapper->field_text = 'New value';
$node_wrapper->field_term = 123;
$node_wrapper->save();
Удалить значения поля
$node_wrapper->field_image->set(NULL);
Удалить одно значение multi-value поля
$node_wrapper->field_image[0]->set(NULL);
Проверить наличие поля у бандла (не наличие значения поля, а именно существование поля у конкретного бандла)
if (isset($node_wrapper->field_name)) { ... }
Отличить single-value поле от multi-value
if ($node_wrapper->field_name instanceof EntityListWrapper) {Поле multi-value } else {Поле single-value }
Получить список доступных свойств
$node_properties = $node_wrapper->getPropertyInfo();
$body_properties = $node_wrapper->body->getPropertyInfo();
Получить список доступных свойств у определённого типа сущности
$node_properties = entity_get_property_info('node');
источник