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