13

Проблема с сохранением меню в WordPress 3.X

Как это выглядит: новые элементы меню не сохраняются. Возникает ограничение на максимальное кол-во элементов в меню (которого быть не должно). Цифра может быть разной, но как правило эта проблема затрагивает только большие меню с количеством элементов более 40.


Проблема может возникнуть если вы используете PHP 5.3.9 или более позднюю версию.

Также возможно ее появление при использовании патча безопасности для PHP — Suhosin.

Суть проблемы.

Начиная c PHP 5.3.9 в php.ini была добавлена новая директива:

max_input_vars

Она ограничивает количество входных переменных, которое может быть обработано в одном запросе. Сделано это, разумеется, в целях повышения безопасности.

В моем случае значение по умолчанию было равно 1000. И этого было мало (интересная структура у менюшек в WordPress). Увеличил значение до 2000 — меню стало сохраняться корректно.

Если на сервере используется Suhosin, необходимо увеличить значения двух директив:

suhosin.post.max_vars и suhosin.request.max_vars

2000 должно хватить и здесь.