You are here

function field_delete_field in Drupal 7

Marks a field and its instances and data for deletion.

Parameters

$field_name: The field name to delete.

Related topics

8 calls to field_delete_field()
FieldCrudTestCase::testDeleteField in modules/field/tests/field.test
Test the deletion of a field.
field_delete_instance in modules/field/field.crud.inc
Marks a field instance and its data for deletion.
FileFieldValidateTestCase::testFileExtension in modules/file/tests/file.test
Tests file extension checking.
FileFieldValidateTestCase::testFileMaxSize in modules/file/tests/file.test
Tests the max file size validator.
FileFieldValidateTestCase::testRequired in modules/file/tests/file.test
Tests the required property on file fields.

... See full list

File

modules/field/field.crud.inc, line 411
Field CRUD API, handling field and field instance creation and deletion.

Code

function field_delete_field($field_name) {

  // Delete all non-deleted instances.
  $field = field_info_field($field_name);
  if (isset($field['bundles'])) {
    foreach ($field['bundles'] as $entity_type => $bundles) {
      foreach ($bundles as $bundle) {
        $instance = field_info_instance($entity_type, $field_name, $bundle);
        field_delete_instance($instance, FALSE);
      }
    }
  }

  // Mark field data for deletion.
  module_invoke($field['storage']['module'], 'field_storage_delete_field', $field);

  // Mark the field for deletion.
  db_update('field_config')
    ->fields(array(
    'deleted' => 1,
  ))
    ->condition('field_name', $field_name)
    ->execute();

  // Clear the cache.
  field_cache_clear();
  module_invoke_all('field_delete_field', $field);
}