1 redirect.module redirect_delete_by_path($path)

Delete any redirects associated with a path or any of its sub-paths.

Given a source like 'node/1' this function will delete any redirects that have that specific source or any sources that match 'node/1/%'.

Parameters

$path: An string with an internal Backdrop path.

Return value

int|FALSE: The constant SAVED_DELETED if redirects were removed. FALSE if no redirects were removed.

Related topics

File

core/modules/redirect/redirect.module, line 788

Code

function redirect_delete_by_path($path) {
  $query = db_select('redirect');
  $query->addField('redirect', 'rid');
  $query_or = db_or();
  $query_or->condition('source', db_like($path), 'LIKE');
  $query_or->condition('source', db_like($path . '/') . '%', 'LIKE');
  $query_or->condition('redirect', db_like($path), 'LIKE');
  $query_or->condition('redirect', db_like($path . '/') . '%', 'LIKE');
  $query->condition($query_or);
  $rids = $query->execute()->fetchCol();

  if ($rids) {
    return redirect_delete_multiple($rids);
  }

  return FALSE;
}