diff --git a/mappers/field.inc b/mappers/field.inc index 615b9a5..91eebe8 100644 --- a/mappers/field.inc +++ b/mappers/field.inc @@ -16,12 +16,20 @@ function field_feeds_presave(FeedsSource $source, $entity, $item, $entity_id) { return; } + // Gather the fields that Feeds is mapping to. + $feeds_fields = array(); + foreach ($source->importer()->processor->getMappings() as $mapping) { + list($field) = explode(':', $mapping['target']); + $feeds_fields[$field] = TRUE; + } + list(, , $bundle) = entity_extract_ids($entity_type, $entity); foreach (field_info_instances($entity_type, $bundle) as $instance) { $field_name = $instance['field_name']; - if (empty($entity->$field_name)) { + // Skip fields that Feeds isn't mapping to, and empty fields. + if (!isset($feeds_fields[$field_name]) || empty($entity->$field_name)) { continue; }