wp_raise_memory_limit() – Attempts to raise the PHP memory limit for memory intensive processes.

You appear to be a bot. Output may be restricted

Description

Attempts to raise the PHP memory limit for memory intensive processes.

Only allows raising the existing limit and prevents lowering it.

Usage

$int|string|false = wp_raise_memory_limit( $context );

Parameters

$context
( string ) optional default: admin – 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 $context_memory_limit filter will be invoked. Default 'admin'.

Returns

int|string|false The limit that was set or false on failure.

Source

File name: wordpress/wp-includes/functions.php
Lines:

1 to 100 of 108
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 ) ) {
 

 View on GitHub View on Trac