function field_delete_field

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

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);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.