wp_raise_memory_limit

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

WordPress Version: 6.3

/**
 * Attempts to raise the PHP memory limit for memory intensive processes.
 *
 * Only allows raising the existing limit and prevents lowering it.
 *
 * @since 4.6.0
 *
 * @param string $context Optional. Context in which the function is called. Accepts either 'admin',
 *                        'image', 'cron', or an arbitrary other context. If an arbitrary context is passed,
 *                        the similarly arbitrary {@see '$context_memory_limit'} filter will be
 *                        invoked. Default 'admin'.
 * @return int|string|false The limit that was set or false on failure.
 */
function wp_raise_memory_limit($context = 'admin')
{
    // Exit early if the limit cannot be changed.
    if (false === wp_is_ini_value_changeable('memory_limit')) {
        return false;
    }
    $current_limit = ini_get('memory_limit');
    $current_limit_int = wp_convert_hr_to_bytes($current_limit);
    if (-1 === $current_limit_int) {
        return false;
    }
    $wp_max_limit = WP_MAX_MEMORY_LIMIT;
    $wp_max_limit_int = wp_convert_hr_to_bytes($wp_max_limit);
    $filtered_limit = $wp_max_limit;
    switch ($context) {
        case 'admin':
            /**
             * Filters the maximum memory limit available for administration screens.
             *
             * This only applies to administrators, who may require more memory for tasks
             * like updates. Memory limits when processing images (uploaded or edited by
             * users of any role) are handled separately.
             *
             * The `WP_MAX_MEMORY_LIMIT` constant specifically defines the maximum memory
             * limit available when in the administration back end. The default is 256M
             * (256 megabytes of memory) or the original `memory_limit` php.ini value if
             * this is higher.
             *
             * @since 3.0.0
             * @since 4.6.0 The default now takes the original `memory_limit` into account.
             *
             * @param int|string $filtered_limit The maximum WordPress memory limit. Accepts an integer
             *                                   (bytes), or a shorthand string notation, such as '256M'.
             */
            $filtered_limit = apply_filters('admin_memory_limit', $filtered_limit);
            break;
        case 'image':
            /**
             * Filters the memory limit allocated for image manipulation.
             *
             * @since 3.5.0
             * @since 4.6.0 The default now takes the original `memory_limit` into account.
             *
             * @param int|string $filtered_limit Maximum memory limit to allocate for image processing.
             *                                   Default `WP_MAX_MEMORY_LIMIT` or the original
             *                                   php.ini `memory_limit`, whichever is higher.
             *                                   Accepts an integer (bytes), or a shorthand string
             *                                   notation, such as '256M'.
             */
            $filtered_limit = apply_filters('image_memory_limit', $filtered_limit);
            break;
        case 'cron':
            /**
             * Filters the memory limit allocated for WP-Cron event processing.
             *
             * @since 6.3.0
             *
             * @param int|string $filtered_limit Maximum memory limit to allocate for WP-Cron.
             *                                   Default `WP_MAX_MEMORY_LIMIT` or the original
             *                                   php.ini `memory_limit`, whichever is higher.
             *                                   Accepts an integer (bytes), or a shorthand string
             *                                   notation, such as '256M'.
             */
            $filtered_limit = apply_filters('cron_memory_limit', $filtered_limit);
            break;
        default:
            /**
             * Filters the memory limit allocated for an arbitrary context.
             *
             * The dynamic portion of the hook name, `$context`, refers to an arbitrary
             * context passed on calling the function. This allows for plugins to define
             * their own contexts for raising the memory limit.
             *
             * @since 4.6.0
             *
             * @param int|string $filtered_limit Maximum memory limit to allocate for this context.
             *                                   Default WP_MAX_MEMORY_LIMIT` or the original php.ini `memory_limit`,
             *                                   whichever is higher. Accepts an integer (bytes), or a
             *                                   shorthand string notation, such as '256M'.
             */
            $filtered_limit = apply_filters("{$context}_memory_limit", $filtered_limit);
            break;
    }
    $filtered_limit_int = wp_convert_hr_to_bytes($filtered_limit);
    if (-1 === $filtered_limit_int || $filtered_limit_int > $wp_max_limit_int && $filtered_limit_int > $current_limit_int) {
        if (false !== ini_set('memory_limit', $filtered_limit)) {
            return $filtered_limit;
        } else {
            return false;
        }
    } elseif (-1 === $wp_max_limit_int || $wp_max_limit_int > $current_limit_int) {
        if (false !== ini_set('memory_limit', $wp_max_limit)) {
            return $wp_max_limit;
        } else {
            return false;
        }
    }
    return false;
}

WordPress Version: 5.7

/**
 * Attempts to raise the PHP memory limit for memory intensive processes.
 *
 * Only allows raising the existing limit and prevents lowering it.
 *
 * @since 4.6.0
 *
 * @param string $context Optional. Context in which the function is called. Accepts either 'admin',
 *                        'image', or an arbitrary other context. If an arbitrary context is passed,
 *                        the similarly arbitrary {@see '$context_memory_limit'} filter will be
 *                        invoked. Default 'admin'.
 * @return int|string|false The limit that was set or false on failure.
 */
function wp_raise_memory_limit($context = 'admin')
{
    // Exit early if the limit cannot be changed.
    if (false === wp_is_ini_value_changeable('memory_limit')) {
        return false;
    }
    $current_limit = ini_get('memory_limit');
    $current_limit_int = wp_convert_hr_to_bytes($current_limit);
    if (-1 === $current_limit_int) {
        return false;
    }
    $wp_max_limit = WP_MAX_MEMORY_LIMIT;
    $wp_max_limit_int = wp_convert_hr_to_bytes($wp_max_limit);
    $filtered_limit = $wp_max_limit;
    switch ($context) {
        case 'admin':
            /**
             * Filters the maximum memory limit available for administration screens.
             *
             * This only applies to administrators, who may require more memory for tasks
             * like updates. Memory limits when processing images (uploaded or edited by
             * users of any role) are handled separately.
             *
             * The `WP_MAX_MEMORY_LIMIT` constant specifically defines the maximum memory
             * limit available when in the administration back end. The default is 256M
             * (256 megabytes of memory) or the original `memory_limit` php.ini value if
             * this is higher.
             *
             * @since 3.0.0
             * @since 4.6.0 The default now takes the original `memory_limit` into account.
             *
             * @param int|string $filtered_limit The maximum WordPress memory limit. Accepts an integer
             *                                   (bytes), or a shorthand string notation, such as '256M'.
             */
            $filtered_limit = apply_filters('admin_memory_limit', $filtered_limit);
            break;
        case 'image':
            /**
             * Filters the memory limit allocated for image manipulation.
             *
             * @since 3.5.0
             * @since 4.6.0 The default now takes the original `memory_limit` into account.
             *
             * @param int|string $filtered_limit Maximum memory limit to allocate for images.
             *                                   Default `WP_MAX_MEMORY_LIMIT` or the original
             *                                   php.ini `memory_limit`, whichever is higher.
             *                                   Accepts an integer (bytes), or a shorthand string
             *                                   notation, such as '256M'.
             */
            $filtered_limit = apply_filters('image_memory_limit', $filtered_limit);
            break;
        default:
            /**
             * Filters the memory limit allocated for arbitrary contexts.
             *
             * The dynamic portion of the hook name, `$context`, refers to an arbitrary
             * context passed on calling the function. This allows for plugins to define
             * their own contexts for raising the memory limit.
             *
             * @since 4.6.0
             *
             * @param int|string $filtered_limit Maximum memory limit to allocate for images.
             *                                   Default '256M' or the original php.ini `memory_limit`,
             *                                   whichever is higher. Accepts an integer (bytes), or a
             *                                   shorthand string notation, such as '256M'.
             */
            $filtered_limit = apply_filters("{$context}_memory_limit", $filtered_limit);
            break;
    }
    $filtered_limit_int = wp_convert_hr_to_bytes($filtered_limit);
    if (-1 === $filtered_limit_int || $filtered_limit_int > $wp_max_limit_int && $filtered_limit_int > $current_limit_int) {
        if (false !== ini_set('memory_limit', $filtered_limit)) {
            return $filtered_limit;
        } else {
            return false;
        }
    } elseif (-1 === $wp_max_limit_int || $wp_max_limit_int > $current_limit_int) {
        if (false !== ini_set('memory_limit', $wp_max_limit)) {
            return $wp_max_limit;
        } else {
            return false;
        }
    }
    return false;
}

WordPress Version: 5.6

/**
 * Attempts to raise the PHP memory limit for memory intensive processes.
 *
 * Only allows raising the existing limit and prevents lowering it.
 *
 * @since 4.6.0
 *
 * @param string $context Optional. Context in which the function is called. Accepts either 'admin',
 *                        'image', or an arbitrary other context. If an arbitrary context is passed,
 *                        the similarly arbitrary {@see '$context_memory_limit'} filter will be
 *                        invoked. Default 'admin'.
 * @return bool|int|string The limit that was set or false on failure.
 */
function wp_raise_memory_limit($context = 'admin')
{
    // Exit early if the limit cannot be changed.
    if (false === wp_is_ini_value_changeable('memory_limit')) {
        return false;
    }
    $current_limit = ini_get('memory_limit');
    $current_limit_int = wp_convert_hr_to_bytes($current_limit);
    if (-1 === $current_limit_int) {
        return false;
    }
    $wp_max_limit = WP_MAX_MEMORY_LIMIT;
    $wp_max_limit_int = wp_convert_hr_to_bytes($wp_max_limit);
    $filtered_limit = $wp_max_limit;
    switch ($context) {
        case 'admin':
            /**
             * Filters the maximum memory limit available for administration screens.
             *
             * This only applies to administrators, who may require more memory for tasks
             * like updates. Memory limits when processing images (uploaded or edited by
             * users of any role) are handled separately.
             *
             * The `WP_MAX_MEMORY_LIMIT` constant specifically defines the maximum memory
             * limit available when in the administration back end. The default is 256M
             * (256 megabytes of memory) or the original `memory_limit` php.ini value if
             * this is higher.
             *
             * @since 3.0.0
             * @since 4.6.0 The default now takes the original `memory_limit` into account.
             *
             * @param int|string $filtered_limit The maximum WordPress memory limit. Accepts an integer
             *                                   (bytes), or a shorthand string notation, such as '256M'.
             */
            $filtered_limit = apply_filters('admin_memory_limit', $filtered_limit);
            break;
        case 'image':
            /**
             * Filters the memory limit allocated for image manipulation.
             *
             * @since 3.5.0
             * @since 4.6.0 The default now takes the original `memory_limit` into account.
             *
             * @param int|string $filtered_limit Maximum memory limit to allocate for images.
             *                                   Default `WP_MAX_MEMORY_LIMIT` or the original
             *                                   php.ini `memory_limit`, whichever is higher.
             *                                   Accepts an integer (bytes), or a shorthand string
             *                                   notation, such as '256M'.
             */
            $filtered_limit = apply_filters('image_memory_limit', $filtered_limit);
            break;
        default:
            /**
             * Filters the memory limit allocated for arbitrary contexts.
             *
             * The dynamic portion of the hook name, `$context`, refers to an arbitrary
             * context passed on calling the function. This allows for plugins to define
             * their own contexts for raising the memory limit.
             *
             * @since 4.6.0
             *
             * @param int|string $filtered_limit Maximum memory limit to allocate for images.
             *                                   Default '256M' or the original php.ini `memory_limit`,
             *                                   whichever is higher. Accepts an integer (bytes), or a
             *                                   shorthand string notation, such as '256M'.
             */
            $filtered_limit = apply_filters("{$context}_memory_limit", $filtered_limit);
            break;
    }
    $filtered_limit_int = wp_convert_hr_to_bytes($filtered_limit);
    if (-1 === $filtered_limit_int || $filtered_limit_int > $wp_max_limit_int && $filtered_limit_int > $current_limit_int) {
        if (false !== ini_set('memory_limit', $filtered_limit)) {
            return $filtered_limit;
        } else {
            return false;
        }
    } elseif (-1 === $wp_max_limit_int || $wp_max_limit_int > $current_limit_int) {
        if (false !== ini_set('memory_limit', $wp_max_limit)) {
            return $wp_max_limit;
        } else {
            return false;
        }
    }
    return false;
}

WordPress Version: 5.3

/**
 * Attempts to raise the PHP memory limit for memory intensive processes.
 *
 * Only allows raising the existing limit and prevents lowering it.
 *
 * @since 4.6.0
 *
 * @param string $context Optional. Context in which the function is called. Accepts either 'admin',
 *                        'image', or an arbitrary other context. If an arbitrary context is passed,
 *                        the similarly arbitrary {@see '{$context}_memory_limit'} filter will be
 *                        invoked. Default 'admin'.
 * @return bool|int|string The limit that was set or false on failure.
 */
function wp_raise_memory_limit($context = 'admin')
{
    // Exit early if the limit cannot be changed.
    if (false === wp_is_ini_value_changeable('memory_limit')) {
        return false;
    }
    $current_limit = ini_get('memory_limit');
    $current_limit_int = wp_convert_hr_to_bytes($current_limit);
    if (-1 === $current_limit_int) {
        return false;
    }
    $wp_max_limit = WP_MAX_MEMORY_LIMIT;
    $wp_max_limit_int = wp_convert_hr_to_bytes($wp_max_limit);
    $filtered_limit = $wp_max_limit;
    switch ($context) {
        case 'admin':
            /**
             * Filters the maximum memory limit available for administration screens.
             *
             * This only applies to administrators, who may require more memory for tasks
             * like updates. Memory limits when processing images (uploaded or edited by
             * users of any role) are handled separately.
             *
             * The `WP_MAX_MEMORY_LIMIT` constant specifically defines the maximum memory
             * limit available when in the administration back end. The default is 256M
             * (256 megabytes of memory) or the original `memory_limit` php.ini value if
             * this is higher.
             *
             * @since 3.0.0
             * @since 4.6.0 The default now takes the original `memory_limit` into account.
             *
             * @param int|string $filtered_limit The maximum WordPress memory limit. Accepts an integer
             *                                   (bytes), or a shorthand string notation, such as '256M'.
             */
            $filtered_limit = apply_filters('admin_memory_limit', $filtered_limit);
            break;
        case 'image':
            /**
             * Filters the memory limit allocated for image manipulation.
             *
             * @since 3.5.0
             * @since 4.6.0 The default now takes the original `memory_limit` into account.
             *
             * @param int|string $filtered_limit Maximum memory limit to allocate for images.
             *                                   Default `WP_MAX_MEMORY_LIMIT` or the original
             *                                   php.ini `memory_limit`, whichever is higher.
             *                                   Accepts an integer (bytes), or a shorthand string
             *                                   notation, such as '256M'.
             */
            $filtered_limit = apply_filters('image_memory_limit', $filtered_limit);
            break;
        default:
            /**
             * Filters the memory limit allocated for arbitrary contexts.
             *
             * The dynamic portion of the hook name, `$context`, refers to an arbitrary
             * context passed on calling the function. This allows for plugins to define
             * their own contexts for raising the memory limit.
             *
             * @since 4.6.0
             *
             * @param int|string $filtered_limit Maximum memory limit to allocate for images.
             *                                   Default '256M' or the original php.ini `memory_limit`,
             *                                   whichever is higher. Accepts an integer (bytes), or a
             *                                   shorthand string notation, such as '256M'.
             */
            $filtered_limit = apply_filters("{$context}_memory_limit", $filtered_limit);
            break;
    }
    $filtered_limit_int = wp_convert_hr_to_bytes($filtered_limit);
    if (-1 === $filtered_limit_int || $filtered_limit_int > $wp_max_limit_int && $filtered_limit_int > $current_limit_int) {
        if (false !== ini_set('memory_limit', $filtered_limit)) {
            return $filtered_limit;
        } else {
            return false;
        }
    } elseif (-1 === $wp_max_limit_int || $wp_max_limit_int > $current_limit_int) {
        if (false !== ini_set('memory_limit', $wp_max_limit)) {
            return $wp_max_limit;
        } else {
            return false;
        }
    }
    return false;
}

WordPress Version: 4.6

/**
 * Attempts to raise the PHP memory limit for memory intensive processes.
 *
 * Only allows raising the existing limit and prevents lowering it.
 *
 * @since 4.6.0
 *
 * @param string $context Optional. Context in which the function is called. Accepts either 'admin',
 *                        'image', or an arbitrary other context. If an arbitrary context is passed,
 *                        the similarly arbitrary {@see '{$context}_memory_limit'} filter will be
 *                        invoked. Default 'admin'.
 * @return bool|int|string The limit that was set or false on failure.
 */
function wp_raise_memory_limit($context = 'admin')
{
    // Exit early if the limit cannot be changed.
    if (false === wp_is_ini_value_changeable('memory_limit')) {
        return false;
    }
    $current_limit = @ini_get('memory_limit');
    $current_limit_int = wp_convert_hr_to_bytes($current_limit);
    if (-1 === $current_limit_int) {
        return false;
    }
    $wp_max_limit = WP_MAX_MEMORY_LIMIT;
    $wp_max_limit_int = wp_convert_hr_to_bytes($wp_max_limit);
    $filtered_limit = $wp_max_limit;
    switch ($context) {
        case 'admin':
            /**
             * Filters the maximum memory limit available for administration screens.
             *
             * This only applies to administrators, who may require more memory for tasks
             * like updates. Memory limits when processing images (uploaded or edited by
             * users of any role) are handled separately.
             *
             * The `WP_MAX_MEMORY_LIMIT` constant specifically defines the maximum memory
             * limit available when in the administration back end. The default is 256M
             * (256 megabytes of memory) or the original `memory_limit` php.ini value if
             * this is higher.
             *
             * @since 3.0.0
             * @since 4.6.0 The default now takes the original `memory_limit` into account.
             *
             * @param int|string $filtered_limit The maximum WordPress memory limit. Accepts an integer
             *                                   (bytes), or a shorthand string notation, such as '256M'.
             */
            $filtered_limit = apply_filters('admin_memory_limit', $filtered_limit);
            break;
        case 'image':
            /**
             * Filters the memory limit allocated for image manipulation.
             *
             * @since 3.5.0
             * @since 4.6.0 The default now takes the original `memory_limit` into account.
             *
             * @param int|string $filtered_limit Maximum memory limit to allocate for images.
             *                                   Default `WP_MAX_MEMORY_LIMIT` or the original
             *                                   php.ini `memory_limit`, whichever is higher.
             *                                   Accepts an integer (bytes), or a shorthand string
             *                                   notation, such as '256M'.
             */
            $filtered_limit = apply_filters('image_memory_limit', $filtered_limit);
            break;
        default:
            /**
             * Filters the memory limit allocated for arbitrary contexts.
             *
             * The dynamic portion of the hook name, `$context`, refers to an arbitrary
             * context passed on calling the function. This allows for plugins to define
             * their own contexts for raising the memory limit.
             *
             * @since 4.6.0
             *
             * @param int|string $filtered_limit Maximum memory limit to allocate for images.
             *                                   Default '256M' or the original php.ini `memory_limit`,
             *                                   whichever is higher. Accepts an integer (bytes), or a
             *                                   shorthand string notation, such as '256M'.
             */
            $filtered_limit = apply_filters("{$context}_memory_limit", $filtered_limit);
            break;
    }
    $filtered_limit_int = wp_convert_hr_to_bytes($filtered_limit);
    if (-1 === $filtered_limit_int || $filtered_limit_int > $wp_max_limit_int && $filtered_limit_int > $current_limit_int) {
        if (false !== @ini_set('memory_limit', $filtered_limit)) {
            return $filtered_limit;
        } else {
            return false;
        }
    } elseif (-1 === $wp_max_limit_int || $wp_max_limit_int > $current_limit_int) {
        if (false !== @ini_set('memory_limit', $wp_max_limit)) {
            return $wp_max_limit;
        } else {
            return false;
        }
    }
    return false;
}