WP_MEMORY_LIMIT non funziona in wp-config

16 nov 2017, 12:45:20
Visualizzazioni: 17.2K
Voti: 4

Voglio impostare WP_MEMORY_LIMIT per il mio sito WordPress. Uso un hosting condiviso con CPanel. Ho accesso per modificare parametri come il limite massimo di memoria sul mio host. Ho allegato un'immagine correlata qui sotto per riferimento:

Screenshot delle impostazioni di memoria in CPanel

Ho verificato il limite massimo di memoria sull'host usando un file PHP e phpinfo(); ed è impostato a 512M.

Il mio problema riguarda l'impostazione di WP_MEMORY_LIMIT nel file wp-config.php. Ho aggiunto queste righe di codice per definire le costanti in WordPress:

Screenshot del codice aggiunto in wp-config.php

Ho utilizzato il plugin "Server IP & Memory Usage Display" che mostra il limite di memoria WP e il limite massimo di memoria WP in fondo a ogni pagina del pannello di amministrazione. La cosa strana è che WP Max Memory limit è 512M ma WP Memory limit è ancora a 40M.

Ho cercato soluzioni nei forum di stack-overflow e ho scoperto che dovrei modificarlo da default-constants.php nella directory wp-includes.

// Definire i limiti di 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' );
        }
    }

L'ho modificato e funziona correttamente, ma non è il modo giusto perché ogni volta che aggiorno WordPress, torna a 40M e devo modificarlo manualmente di nuovo da default-constants.php.

Quindi, come posso risolvere questo problema? Perché non viene applicato e non funziona in wp-config?

3
Commenti

puoi provare a incollare entrambe le righe direttamente sotto la riga WP_DEBUG

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

È la risposta perfetta, l'ho modificato e incollato direttamente sotto la riga WP_DEBUG. Non sapevo che l'ordine in wp-config.php fosse importante. Molte grazie per la tua risposta perfetta. Grazie mille

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

Ok. Lo posterò come risposta

Piyush Rawat Piyush Rawat
16 nov 2017 13:08:15
Tutte le risposte alla domanda 3
3

È necessario impostare entrambe le costanti prima che ABSPATH sia definito. Subito dopo questa riga in wp-config.php

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

segna la risposta come accettata per gli utenti futuri

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

Caro Piyush, come posso segnare questa come risposta accettata?

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

Ci dovrebbe essere un segno di spunta sul lato sinistro della risposta

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

Questo perché dovresti definire quanto sopra prima di /* È tutto, smetti di modificare! Buon blogging. */

In questo modo:

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

/* È tutto, smetti di modificare! Buon blogging. */
16 nov 2017 13:11:32
0

Basta definire WP_MEMORY_LIMIT nel tuo file wp-config.php e impostarlo con il valore corrente di memory_limit di PHP:

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

Aggiungi la riga sopra appena prima della riga "/* That’s all, stop editing! Happy blogging. */".

21 mar 2019 20:28:16