iis7_delete_rewrite_rule

The timeline below displays how wordpress function iis7_delete_rewrite_rule has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.1

/**
 * Deletes WordPress rewrite rule from web.config file if it exists there.
 *
 * @since 2.8.0
 *
 * @param string $filename Name of the configuration file.
 * @return bool
 */
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;
}

WordPress Version: 5.4

/**
 * Delete WordPress rewrite rule from web.config file if it exists there
 *
 * @since 2.8.0
 *
 * @param string $filename Name of the configuration file
 * @return bool
 */
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;
}

WordPress Version: 5.1

/**
 * Delete WordPress rewrite rule from web.config file if it exists there
 *
 * @since 2.8.0
 *
 * @param string $filename Name of the configuration file
 * @return bool
 */
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;
}

WordPress Version: 4.4

/**
 * Delete WordPress rewrite rule from web.config file if it exists there
 *
 * @since 2.8.0
 *
 * @param string $filename Name of the configuration file
 * @return bool
 */
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\')]');
    if ($rules->length > 0) {
        $child = $rules->item(0);
        $parent = $child->parentNode;
        $parent->removeChild($child);
        $doc->formatOutput = true;
        saveDomDocument($doc, $filename);
    }
    return true;
}

WordPress Version: 3.7

/**
 * Delete WordPress rewrite rule from web.config file if it exists there
 *
 * @since 2.8.0
 *
 * @param string $filename Name of the configuration file
 * @return bool
 */
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')) {
        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\')]');
    if ($rules->length > 0) {
        $child = $rules->item(0);
        $parent = $child->parentNode;
        $parent->removeChild($child);
        $doc->formatOutput = true;
        saveDomDocument($doc, $filename);
    }
    return true;
}