Skip to content

Bulk deleting Drupal nodes of a particular content type

The Drupal admin interface allows you to delete up to 50 nodes at one time, which is great – but there are times when you it’s just not enough and you need to bulk delete many thousands of nodes. In this example we will delete all nodes of a particular type (page), a quick way to execute the code is to create a new node, set the input format to PHP, paste the code into the node body – add a title and click submit – don’t forget to delete the node when your done!

  $node_type = 'page';
  
  //fetch the nodes we want to delete
  $result = db_query("SELECT nid FROM {node} WHERE type='%s'",$node_type);
  while ($row = db_fetch_object($result)){
    node_delete($row->nid);
    $deleted_count+=1;
  }
  //simple debug message so we can see what had been deleted.
  drupal_set_message("$deleted_count nodes have been deleted");