Нужна помощь по движку WordPress. Проблема застарелая, несколько лет уже как. Наверняка что-то можно придумать, нужно только понять в каком направлении копать.
Вопрос следующий, когда открывается админка, на главной странице в ней показываются последние комментарии. Выглядит это так:
Это нормальный рабочий режим. Тут всё в порядке.
Но если с главной страницы перейти в раздел комментариев, начинаются проблемы. В разделе комментариев должны показываться последние N комментариев, где N определяется в настройках. Раньше там всегда выводились 20 последних.
Но сейчас там показывается примерно такое:
Ровно один комментарий, и всё.
На то, что что-то идёт не так, как бы намекает надпись «Fatal Error» в правой части. Полностью она выглядит так:
Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes) in /var/www/boardgamer/data/www/boardgamer.ru/wp-includes/wp-db.php on line 1998
There has been a critical error on your website. Please check your site admin email inbox for instructions.
Предположение номер один — движку не хватает памяти, из-за этого возникает ошибка. Но добавлять памяти возможности нет. Плюс возникает ещё вопрос, почему на главной странице админки хватает памяти, чтобы вывести 5 последних комментариев, а тут показывается только один?
Само по себе это не страшно, но делает крайне неудобным работу с комментариями. Например, то, что попадает в спам, ну просто нереально пролистывать по одному. Так бы глянул список из 10-20-30 штук, быстро удалил ненужные, пропустил нужные и всё.
Подскажие, как это починить. Вдруг это какая-то типичная проблема. Гугление и поиски по сайту Worpdress пока натакливают на мысль, что надо докупать памяти, но хочется поискать другой вариант.
Что делать?
Вот здесь кое-что есть, от оптимизации запросов (в первую очередь надо смотреть) до докупания памяти
https://ru.stackoverflow.com/questions/275571/php-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-fatal-error-%D0%9A%D0%B0%D0%BA-%D1%80%D0%B5%D1%88%D0%B8%D1%82%D1%8C-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%83
Еще можно подумать над очисткой базы — перенести старые комментарии в архивную таблицу.
А БД сжимали? Есть плагины для этого. При наличии некоторых плагинов (например «версии» статей или «черновики») БД разрастается неимоверно.
@wil_low
Я не спец в WP, но насколько знаю, в этой CMS запросы заложены в движок, и стоит лезть так глубоко без понимания. Иначе при следующем обновлении WP будут проблемы.
268435456/1024/1024 = 256mb.
Скорее всего это проблема лимита памяти php, по умолчанию. Если есть доступ к настройкам php, то можно увеличить лимит (https://www.google.com/search?q=php+memory+limit+256mb), если нет — обратиться к поставщику хостинга, если не помолучиться — оптимизировать, экспериментировать, …..
Покупать ничего не нужно!
Скорее всего в этом модуле запрос пытается достать вообще все комментарии (или не комментарии). В php.ini стоит memory_limit = 256, когда запрос получает больше, а скрипт не может его прожевать. Возможно, так как версия старая, пагинация работала не лимитами и оффсетами, а прямо наживую резала массив вообще всех комментариев.
Вариант 1 (неправильный) — увеличить memory_limit и, возможно, заработает
Вариант 2 — залезь в модуль админки и поправить запрос
А можно подробностей по варианту № 2? Что именно и где надо править?