Системное администрирование

Ошибка сохранения страницы Elementor WordPress

В WordPress есть функционал сохранения редакций страниц. Каждый раз, когда редактируется страница через Elementor, сохраняется история изменений страницы со всеми мета-данными.
При этом, перед сохранением изменений WordPress анализирует всю историю изменений страницы, выполняя запрос к базе вида:
SELECT post_id, meta_key, meta_value FROM Basepostmeta WHERE post_id IN (9347,9346,9345,9344,9342,9341,9340,9294,9293,9292,9278,9277,9276,9230,9229,9228,9226,9225,9224,9222,9221,9220,9214,9213,9212,9210,9209,9208,9206,9205,9204,9199,9198,9197,9191,9190,9189,9186,9185,9184,9182,9181,9180,9177,9176,9175,9170,9169,9168,9166,9165,9164,9162,9161,9160,9159,9158,9157,9155,9154,9153,9151,9150,9149,9147,9146,9145,9139,9138,9137,9133,9132,9131,9129,9128,9127,9126,9125,9124,9123,9122,9121,9119,9118,9117,9115,9114,9113,9112,9111,9110,9108,9107,9106,9104,9103,9102,9099,9098,9097,9095,9094,9093,9092,9091,9090,9089,9087,9086,9085,9083,9082,9081,9080,9079,9078,9077,9076,9075,9074,9073,9072,9071,9070,9069,9068,9067,9066,9065,9064,9063,9046,9045,9044,9039,9038,9037,9035,9034,9033,9027,9026,9025,8999,8998,8997,8994,8993,8992,8991,8990,8989,8985,8984,8983,8974,8973,8972,8970,8969,8968,8966,8965,8964,8963,8962,8961,8960,8959,8958,8955,8954,8953,8952,8951,8950,8949,8948,8947,8946,8945,8944,8943,8942,8941,8940,8939,8938,8933,...;
В результате, WordPress обрабатывает очень большой объем памяти и на процесс может потребоваться больше 1 Гб оперативной памяти. Из-за этого возникают ошибки вида:
Fatal error: Allowed memory size of x bytes exhausted (tried to allocate x bytes) in /path/to/php/script
Ошибку не всегда видно в логах ошибок сайта и/или при включенном режиме отладки в wp-config.php . Чтобы убедиться в наличии этой ошибки, можно добавить в wp-config.php строку:
define( 'WP_DEBUG_LOG', true );
Подробнее об отладке в WordPress: https://ru.wordpress.org/support/article/debugging-in-wordpress/#wp-debug-log
Для решения проблемы можно сделать:
1. Сделать дамп базы данных — бэкапы лишними не бывают.
2. В конфиг wp-config.php добавить параметр, отключающий сохранение редакций страниц:
define( 'WP_POST_REVISIONS', 0 );
3. Удалить уже созданные редакции страниц запросами вида:
DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = 'revision' AND post_name LIKE '%revision%');
DELETE FROM wp_term_relationships WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type = 'revision' AND post_name LIKE '%revision%');
DELETE FROM wp_posts WHERE post_type = 'revision' AND post_name LIKE '%revision%';
CMS