WP_MEMORY_LIMIT no funciona en wp-config - Solución WordPress

16 nov 2017, 12:45:20
Vistas: 17.2K
Votos: 4

Quiero configurar WP_MEMORY_LIMIT para mi sitio WordPress. Uso un hosting compartido con CPanel. Tengo acceso para cambiar el límite de memoria máxima en mi host. Adjunté una imagen relacionada que pueden ver:

Configuración de memoria en CPanel

Verifiqué el límite máximo de memoria en el host mediante un archivo PHP y phpinfo(); y está configurado a 512M.

Mi problema está relacionado con configurar WP_MEMORY_LIMIT en el archivo wp-config.php. Añadí estas líneas de código para definir las constantes en WordPress:

Configuración en wp-config.php

He usado el plugin "Server IP & Memory Usage Display" que muestra el límite de memoria WP y el límite máximo de memoria WP al final de cada página del panel de administración. Lo extraño es que WP Max Memory Limit es 512M pero WP Memory Limit sigue siendo 40M.

Busqué en los foros de stack-overflow y encontré que debería cambiarlo en default-constants.php dentro del directorio wp-includes.

// Definir límites de memoria.
    if ( ! defined( 'WP_MEMORY_LIMIT' ) ) {
        if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
            define( 'WP_MEMORY_LIMIT', $current_limit );
        } elseif ( is_multisite() ) {
            define( 'WP_MEMORY_LIMIT', '64M' );
        } else {
            define( 'WP_MEMORY_LIMIT', '40M' );
        }
    }

    if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) {
        if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
            define( 'WP_MAX_MEMORY_LIMIT', $current_limit );
        } elseif ( -1 === $current_limit_int || $current_limit_int > 268435456 /* = 256M */ ) {
            define( 'WP_MAX_MEMORY_LIMIT', $current_limit );
        } else {
            define( 'WP_MAX_MEMORY_LIMIT', '256M' );
        }
    }

Lo cambié y funciona correctamente, pero no es la forma adecuada porque cada vez que actualizo WordPress, volverá a 40M y tendré que cambiarlo manualmente otra vez en default-constants.php.

¿Cómo puedo resolver este problema? ¿Por qué no se aplicó y funcionó en wp-config?

3
Comentarios

¿Puedes intentar pegar ambas líneas directamente debajo de la línea WP_DEBUG?

Piyush Rawat Piyush Rawat
16 nov 2017 12:57:23

Es la respuesta perfecta, lo cambié y lo pegué directamente debajo de la línea WP_DEBUG. No sabía que el orden en wp-config.php es importante. Muchas gracias por tu respuesta perfecta. Muchas gracias

Mehdi Soltani Mehdi Soltani
16 nov 2017 13:05:52

Ok. Lo publicaré como respuesta

Piyush Rawat Piyush Rawat
16 nov 2017 13:08:15
Todas las respuestas a la pregunta 3
3

Es necesario establecer ambas constantes antes de que ABSPATH sea definido. Justo después de esta línea en wp-config.php

define( 'WP_DEBUG_LOG', true );
16 nov 2017 13:08:51
Comentarios

marca la respuesta como aceptada para futuros usuarios

Piyush Rawat Piyush Rawat
16 nov 2017 13:10:27

Estimado Piyush, ¿cómo puedo marcar esto como respuesta aceptada?

Mehdi Soltani Mehdi Soltani
16 nov 2017 13:13:06

Habrá una marca de verificación en el lado izquierdo de la respuesta

Piyush Rawat Piyush Rawat
16 nov 2017 13:14:30
0

Esto es porque deberías definir lo anterior antes de /* ¡Eso es todo, deja de editar! Feliz blogging. */

Así:

define('WP_MEMORY_LIMIT', '256M');
define('WP_MAX_MEMORY_LIMIT', '512M');

/* ¡Eso es todo, deja de editar! Feliz blogging. */
16 nov 2017 13:11:32
0

Simplemente define WP_MEMORY_LIMIT en tu archivo wp-config.php y asígnalo al memory_limit actual de PHP:

define( 'WP_MEMORY_LIMIT', ini_get( 'memory_limit' ) );

Agrega la línea anterior justo antes de la línea "/* ¡Eso es todo, deja de editar! Feliz blogging. */".

21 mar 2019 20:28:16