Skip to content

How to Bulk Delete Filtered Aliases in Drupal 7 without a Module

The Pathauto module provides a great interface in Drupal 7 for customizing your URLs, but what happens when you change your mind later? Bulk delete. But you don’t have fine control over limited subsets, you can only delete entire alias types (nodes, taxonomy, etc). Sure you could do this in the database as well — if you have access. Our Drupal experts have a solution!

Here’s how to automate clearing out a filtered subset of your alias list (e.g. for a specific taxonomy) from within your browser. There may be modules that probably do this, but I like hacking around in the developer console.

  1. Install Pathauto first :)
  2. Navigate to Configuration » URL aliases
  3. Filter your aliases from the “List” tab
  4. Run the following jQuery snippet in your developer console (F12)

Update: originally restricted context to #block-system-main, it seems that #content is “safer”
$deletes = $(‘li.delete a’, ‘#content’);

// loop delete links
// jquery
var $o = $(o);

// “click” delete link
$.get( $o.attr(‘href’), function(data){
// get
var $delform = $(data).find(‘#path-admin-delete-confirm’)
, confirm = $delform.attr(‘action’)

console.log( $delform.serialize() );
// now “submit” the delete form
$.post( confirm, $delform.serialize(), function(){
console.log( ‘killed ‘ + $o.attr(‘href’) );
}); // submit (post)

}); // click (get)
}); // each


Essentially, it just walks through your list of links, fires each asynchronously, waits for the confirmation form, and then fires that form asynchronously as well. Continue to follow our blog for more great tips like this one from our Drupal experts at Atlantic BT.

Update — check out this script modification for a more generic format that can be reused for just about any bulk update process in Drupal. More great tips from our Drupal experts!

The Atlantic BT Manifesto

The Ultimate Guide To Planning A Complex Web Project