WP_MEMORY_LIMIT не работает в wp-config

16 нояб. 2017 г., 12:45:20
Просмотры: 17.2K
Голосов: 4

Я хочу установить WP_MEMORY_LIMIT для моего сайта на WordPress. Я использую shared-хостинг с CPanel. У меня есть доступ к изменению таких параметров, как максимальный лимит памяти на моем хостинге. Я прикрепил соответствующее изображение ниже:

Настройки памяти на хостинге

Я проверил максимальный лимит памяти на хостинге через PHP-файл с помощью phpinfo();, и он установлен на 512M.

Моя проблема связана с установкой WP_MEMORY_LIMIT в файле wp-config.php. Я добавил следующие строки для определения этих констант в WordPress:

Настройки WP_MEMORY_LIMIT в wp-config.php

Я использовал плагин "Server IP & Memory Usage Display", который показывает WP Memory Limit и WP Max Memory Limit в нижней части каждой страницы админ-панели. Странно, но WP Max Memory Limit показывает 512M, а WP Memory Limit остается на уровне 40M.

Я искал решение на форумах stack-overflow и нашел, что нужно изменить default-constants.php в папке wp-includes.

// Определение лимитов памяти
    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' );
        }
    }

Я изменил этот файл, и это работает правильно, но это не правильный способ, потому что при каждом обновлении WordPress он сбрасывается обратно на 40M, и мне приходится изменять его вручную снова в default-constants.php.

Как я могу решить эту проблему? Почему изменения в wp-config не применяются?

3
Комментарии

Можешь попробовать вставить обе строки сразу после строки WP_DEBUG?

Piyush Rawat Piyush Rawat
16 нояб. 2017 г. 12:57:23

Это идеальный ответ, я изменил и вставил сразу после строки WP_DEBUG. Я не знал, что порядок в wp-config.php важен. Большое спасибо за ваш отличный ответ. Огромное спасибо

Mehdi Soltani Mehdi Soltani
16 нояб. 2017 г. 13:05:52

Ок. Я опубликую это как ответ

Piyush Rawat Piyush Rawat
16 нояб. 2017 г. 13:08:15
Все ответы на вопрос 3
3

Необходимо установить обе константы до определения ABSPATH. Сразу после этой строки в файле wp-config.php:

define( 'WP_DEBUG_LOG', true );
16 нояб. 2017 г. 13:08:51
Комментарии

отметьте ответ как принятый для будущих пользователей

Piyush Rawat Piyush Rawat
16 нояб. 2017 г. 13:10:27

Уважаемый Piyush, как я могу отметить этот ответ как принятый?

Mehdi Soltani Mehdi Soltani
16 нояб. 2017 г. 13:13:06

Слева от ответа должна быть галочка

Piyush Rawat Piyush Rawat
16 нояб. 2017 г. 13:14:30
0

Это потому, что вы должны определить указанное выше перед строкой /* That's all, stop editing! Happy blogging. */

Вот так:

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

/* That's all, stop editing! Happy blogging. */
16 нояб. 2017 г. 13:11:32
0

Просто определите константу WP_MEMORY_LIMIT в вашем файле wp-config.php и установите её равной текущему значению memory_limit в PHP:

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

Добавьте эту строку непосредственно перед строкой «/* На этом всё, прекратите редактирование! Удачного ведения блога. */».

21 мар. 2019 г. 20:28:16