clean_dirsize_cache

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

WordPress Version: 6.4

/**
 * Cleans directory size cache used by recurse_dirsize().
 *
 * Removes the current directory and all parent directories from the `dirsize_cache` transient.
 *
 * @since 5.6.0
 * @since 5.9.0 Added input validation with a notice for invalid input.
 *
 * @param string $path Full path of a directory or file.
 */
function clean_dirsize_cache($path)
{
    if (!is_string($path) || empty($path)) {
        trigger_error(sprintf(
            /* translators: 1: Function name, 2: A variable type, like "boolean" or "integer". */
            __('%1$s only accepts a non-empty path string, received %2$s.'),
            '<code>clean_dirsize_cache()</code>',
            '<code>' . gettype($path) . '</code>'
        ));
        return;
    }
    $directory_cache = get_transient('dirsize_cache');
    if (empty($directory_cache)) {
        return;
    }
    $expiration = wp_using_ext_object_cache() ? 0 : (10 * YEAR_IN_SECONDS);
    if (!str_contains($path, '/') && !str_contains($path, '\\')) {
        unset($directory_cache[$path]);
        set_transient('dirsize_cache', $directory_cache, $expiration);
        return;
    }
    $last_path = null;
    $path = untrailingslashit($path);
    unset($directory_cache[$path]);
    while ($last_path !== $path && DIRECTORY_SEPARATOR !== $path && '.' !== $path && '..' !== $path) {
        $last_path = $path;
        $path = dirname($path);
        unset($directory_cache[$path]);
    }
    set_transient('dirsize_cache', $directory_cache, $expiration);
}

WordPress Version: 6.3

/**
 * Cleans directory size cache used by recurse_dirsize().
 *
 * Removes the current directory and all parent directories from the `dirsize_cache` transient.
 *
 * @since 5.6.0
 * @since 5.9.0 Added input validation with a notice for invalid input.
 *
 * @param string $path Full path of a directory or file.
 */
function clean_dirsize_cache($path)
{
    if (!is_string($path) || empty($path)) {
        trigger_error(sprintf(
            /* translators: 1: Function name, 2: A variable type, like "boolean" or "integer". */
            __('%1$s only accepts a non-empty path string, received %2$s.'),
            '<code>clean_dirsize_cache()</code>',
            '<code>' . gettype($path) . '</code>'
        ));
        return;
    }
    $directory_cache = get_transient('dirsize_cache');
    if (empty($directory_cache)) {
        return;
    }
    if (!str_contains($path, '/') && !str_contains($path, '\\')) {
        unset($directory_cache[$path]);
        set_transient('dirsize_cache', $directory_cache);
        return;
    }
    $last_path = null;
    $path = untrailingslashit($path);
    unset($directory_cache[$path]);
    while ($last_path !== $path && DIRECTORY_SEPARATOR !== $path && '.' !== $path && '..' !== $path) {
        $last_path = $path;
        $path = dirname($path);
        unset($directory_cache[$path]);
    }
    set_transient('dirsize_cache', $directory_cache);
}

WordPress Version: 5.9

/**
 * Cleans directory size cache used by recurse_dirsize().
 *
 * Removes the current directory and all parent directories from the `dirsize_cache` transient.
 *
 * @since 5.6.0
 * @since 5.9.0 Added input validation with a notice for invalid input.
 *
 * @param string $path Full path of a directory or file.
 */
function clean_dirsize_cache($path)
{
    if (!is_string($path) || empty($path)) {
        trigger_error(sprintf(
            /* translators: 1: Function name, 2: A variable type, like "boolean" or "integer". */
            __('%1$s only accepts a non-empty path string, received %2$s.'),
            '<code>clean_dirsize_cache()</code>',
            '<code>' . gettype($path) . '</code>'
        ));
        return;
    }
    $directory_cache = get_transient('dirsize_cache');
    if (empty($directory_cache)) {
        return;
    }
    if (strpos($path, '/') === false && strpos($path, '\\') === false) {
        unset($directory_cache[$path]);
        set_transient('dirsize_cache', $directory_cache);
        return;
    }
    $last_path = null;
    $path = untrailingslashit($path);
    unset($directory_cache[$path]);
    while ($last_path !== $path && DIRECTORY_SEPARATOR !== $path && '.' !== $path && '..' !== $path) {
        $last_path = $path;
        $path = dirname($path);
        unset($directory_cache[$path]);
    }
    set_transient('dirsize_cache', $directory_cache);
}

WordPress Version: 5.6

/**
 * Cleans directory size cache used by recurse_dirsize().
 *
 * Removes the current directory and all parent directories from the `dirsize_cache` transient.
 *
 * @since 5.6.0
 *
 * @param string $path Full path of a directory or file.
 */
function clean_dirsize_cache($path)
{
    $directory_cache = get_transient('dirsize_cache');
    if (empty($directory_cache)) {
        return;
    }
    $path = untrailingslashit($path);
    unset($directory_cache[$path]);
    while (DIRECTORY_SEPARATOR !== $path && '.' !== $path && '..' !== $path) {
        $path = dirname($path);
        unset($directory_cache[$path]);
    }
    set_transient('dirsize_cache', $directory_cache);
}