field_delete_field

Versions
7
field_delete_field($field_name)

Mark a field for deletion, including all its instances and all data associated with it.

Parameters

$field_name The field name to delete.

Related topics

Code

modules/field/field.crud.inc, line 544

<?php
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 $obj_type => $bundles) {
      foreach ($bundles as $bundle) {
        $instance = field_info_instance($obj_type, $field_name, $bundle);
        field_delete_instance($instance);
      }
    }
  }

  // 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(TRUE);

  module_invoke_all('field_delete_field', $field);
}
?>
Login or register to post comments
 
 

All source code and documentation on this site is released under the terms of the GNU General Public License, version 2 and later. Drupal is a registered trademark of Dries Buytaert.