Правильный способ проверить существование непустого значения в поле:
$node = node_load(123);
$field_items = field_get_items('node', $node, 'field_mytestfield');
$field_info = field_info_field('field_mytestfield');
if (!empty($field_items) && _field_filter_items($field_info, $field_items)) {
// field not empty
}
Возникнет вопрос - почему бы просто не вызвать !empty($node->field_mytestfield)
? Потому что в очень редких случаях поле может содержать пустые значения:
$node->field_mytestfield['und'] = array();
// или
$node->field_mytestfield['und'][0]['value'] = '';
// или даже
$node->field_mytestfield['fr'][0]['fid'] = 0;
$node->field_mytestfield['fr'][1]['fid'] = 0;
Написанное актуально для
Drupal 7
Добавить комментарий