tl;dr: Manuell gesetzte Wert oder die Default-Werte von WP_MEMORY_LIMIT/WP_MAX_MEMORY_LIMIT haben keinen Effekt, wenn WP_MEMORY_LIMIT/WP_MAX_MEMORY_LIMIT kleiner oder gleich als das Memory Limit von PHP (im Weiteren memory_limit genannt) ist. Sie dienen dazu, zu niedrige Werte von memory_limit dynamisch auf ein empfohlenes Minimum anzuheben.
- Die Konstante
WP_MEMORY_LIMITkann optional inwp-config.phpmitdefine('WP_MEMORY_LIMIT', 'XXXM');gesetzt werden. - Die Konstante
WP_MAX_MEMORY_LIMITkann optional inwp-config.phpmitdefine('WP_MAX_MEMORY_LIMIT', 'XXXM');gesetzt werden. - Ist
WP_MEMORY_LIMITnicht gesetzt, gilt für dessen Default-Wert:memory_limit, sofern der Wert vonmemory_limitnicht dynamisch änderbar ist,- 64 MB sofern es eine Multisite ist,
- 40 MB ansonsten.
- Ist
WP_MAX_MEMORY_LIMITnicht gesetzt, gilt für dessen Default-Wert:memory_limit, sofern der Wert desmemory_limitnicht dynamisch änderbar ist oder wenn er unbegrenzt (-1) oder größer gleich 256 MB ist,- 256 MB ansonsten.
- Die Default-Werte wurden in der Vergangenheit immer wieder angehoben.
WP_MEMORY_LIMITverändert überall mit Hilfe der Funktion ini_set() dynamischmemory_limit, wennWP_MEMORY_LIMITgrößer als das aktuellememory_limitoder wennWP_MEMORY_LIMITunbegrenzt (-1) ist.WP_MAX_MEMORY_LIMITverändert im Backend (genauer: immer dann, wenn die Funktion wp_raise_memory_limit() in unterschiedlichen Kontexten [admin, image] aufgerufen wird) mit Hilfe der Funktion ini_set() dynamischmemory_limit, wennWP_MAX_MEMORY_LIMITgrößer als das aktuellememory_limitoder wennWP_MAX_MEMORY_LIMITunbegrenzt (-1) ist.- Die Logik von
WP_MAX_MEMORY_LIMITläuft nach der Logik vonWP_MEMORY_LIMIT, sodassWP_MEMORY_LIMITim Frontend undWP_MAX_MEMORY_LIMITim Backend greift. - Die oben beschriebene Logik findet zum Großteil in der Funktion wp_initial_constants() (
/wp-includes/default-constants.php) sowie in wp_raise_memory_limit() (/wp-includes/functions.php) statt. - Der Wert
memory_limit = XXXMinphp.inidefiniertmemory_limit(nach Neustart des Webdienstes). - Der Wert
php_value memory_limit XXXMin.htaccessdefiniertmemory_limitfür alle PHP-Dateien im Ordner oder dessen Unterordner, in dem sich die.htaccessbefindet. - Der Webserver kann verhindern, dass der Wert des Memory Limits mit ini_set() verändert wird oder einen vorgegebenen Wert überschreitet (siehe php_admin_value).
memory_limitgilt pro Prozess: Eine Erhöhung vonmemory_limitkann dazu führen, dass die Anzahl der parallelen PHP-Requests abnimmt. Der Wert sollte daher mit bedacht gewählt sein (256 MB, in Ausnahmefällen 512 MB).- Im WordPress-Backend unter Werkzeuge > Website-Zustand können die Werte von
memory_limit(Abschnitt: Server), sowie vonWP_MEMORY_LIMITundWP_MAX_MEMORY_LIMIT(Abschnitt WordPress-Konstanten) ausgelesen werden.