A WordPress-centric search engine for devs and theme authors



iis7_delete_rewrite_rule ›

Since2.8.0
Deprecatedn/a
iis7_delete_rewrite_rule ( $filename )
Parameters:
  • (string) $filename Name of the configuration file
    Required: Yes
Returns:
  • (bool)
Defined at:
Codex:

Delete WordPress rewrite rule from web.config file if it exists there



Source

function iis7_delete_rewrite_rule( $filename ) {
	// If configuration file does not exist then rules also do not exist so there is nothing to delete
	if ( ! file_exists( $filename ) ) {
		return true;
	}

	if ( ! class_exists( 'DOMDocument', false ) ) {
		return false;
	}

	$doc                     = new DOMDocument();
	$doc->preserveWhiteSpace = false;

	if ( $doc->load( $filename ) === false ) {
		return false;
	}
	$xpath = new DOMXPath( $doc );
	$rules = $xpath->query( '/configuration/system.webServer/rewrite/rules/rule[starts-with(@name,\'wordpress\')] | /configuration/system.webServer/rewrite/rules/rule[starts-with(@name,\'WordPress\')]' );
	if ( $rules->length > 0 ) {
		$child  = $rules->item( 0 );
		$parent = $child->parentNode;
		$parent->removeChild( $child );
		$doc->formatOutput = true;
		saveDomDocument( $doc, $filename );
	}
	return true;
}