WP_MEMORY_LIMIT nu funcționează în wp-config

16 nov. 2017, 12:45:20
Vizualizări: 17.2K
Voturi: 4

Vreau să setez WP_MEMORY_LIMIT pentru site-ul meu WordPress. Folosesc hosting partajat și CPanel. Am acces să modific limitele de memorie pe host. Am atașat o imagine relevantă mai jos:

Setări memorie în CPanel

Am verificat limita maximă de memorie pe host folosind un fișier PHP și phpinfo(); și este setată la 512M.

Problema mea este legată de setarea WP_MEMORY_LIMIT în fișierul wp-config.php. Am adăugat aceste linii de cod pentru a defini constantele în WordPress:

Cod în wp-config.php

Am folosit pluginul "Server IP & Memory Usage Display" care afișează limita de memorie WP și limita maximă în partea de jos a fiecărei pagini din panoul de administrare. Ciudat este că WP Max Memory Limit este 512M, dar WP Memory Limit rămâne 40M.

Am căutat soluții pe forumurile Stack Overflow și am aflat că ar trebui să modific default-constants.php din directorul wp-includes.

// Definire limite memorie
    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' );
        }
    }

Am modificat fișierul și funcționează corect, dar nu este o soluție bună pentru că la fiecare actualizare WordPress, se va reseta la 40M și va trebui să-l modific manual din nou.

Cum pot rezolva această problemă? De ce nu se aplică setarea din wp-config?

3
Comentarii

poți încerca să lipești ambele linii direct sub linia WP_DEBUG

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

E răspunsul perfect, l-am modificat și l-am lipit direct sub linia WP_DEBUG. Nu știam că ordinea în wp-config.php este importantă. Mulțumesc mult pentru răspunsul tău perfect. Mulțumesc foarte mult

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

Ok. O să postez ca răspuns

Piyush Rawat Piyush Rawat
16 nov. 2017 13:08:15
Toate răspunsurile la întrebare 3
3

Este necesar să setați ambele constante înainte ca ABSPATH să fie definit. Imediat după această linie în wp-config.php

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

marchează răspunsul ca acceptat pentru utilizatorii viitori

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

Dragă Piyush, Cum pot marca acest răspuns ca fiind acceptat?

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

Va fi o bifă în partea stângă a răspunsului

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

Aceasta se datorează faptului că ar trebui să definiți cele de mai sus înainte de /* That's all, stop editing! Happy blogging. */

Ca în exemplul următor:

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

/* That's all, stop editing! Happy blogging. */
16 nov. 2017 13:11:32
0

Doar definește WP_MEMORY_LIMIT în fișierul tău wp-config.php și setează-l la valoarea curentă a memory_limit din PHP:

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

Adaugă linia de mai sus imediat înainte de linia „/* That’s all, stop editing! Happy blogging. */“.

21 mar. 2019 20:28:16