Как это выглядит: новые элементы меню не сохраняются. Возникает ограничение на максимальное кол-во элементов в меню (которого быть не должно). Цифра может быть разной, но как правило эта проблема затрагивает только большие меню с количеством элементов более 40.
Проблема может возникнуть если вы используете PHP 5.3.9 или более позднюю версию.
Также возможно ее появление при использовании патча безопасности для PHP — Suhosin.
Суть проблемы.
Начиная c PHP 5.3.9 в php.ini была добавлена новая директива:
Она ограничивает количество входных переменных, которое может быть обработано в одном запросе. Сделано это, разумеется, в целях повышения безопасности.
В моем случае значение по умолчанию было равно 1000. И этого было мало (интересная структура у менюшек в WordPress). Увеличил значение до 2000 — меню стало сохраняться корректно.
Если на сервере используется Suhosin, необходимо увеличить значения двух директив:
suhosin.post.max_vars и suhosin.request.max_vars
2000 должно хватить и здесь.
13 ответов к “Проблема с сохранением меню в WordPress 3.X”
Спасибо, помогло!
Спасибо огромное!!!
Тоже столкнулся с данной проблемой!
Вот мое решение:
Заходим в управление модулями на хостинге, и в настройки PHP, там будет «Максимальное количество входящих параметров в запросе»
Этот параметр показывает, сколько входных переменных может быть принято в одном запросе. Использование этой директивы снижает вероятность сбоев в случае атак с использованием хеш-коллизий.
Меняем вместо по умолчанию, на 3000.
И вуаля!!!
Я когда пробую в файл .htaccess добавить php_value max_input_vars 2000
Слетает весь сайт.
:(
Весь код этой странички:
Не всегда можно изменить параметры php через htaccess!
Скорее всего у вас PHP установлен в режиме CGI — поэтому и вылетает ошибка.
Выход — поменять настройки непосредственно в php.ini
Или пропишите прямо в wp-config.php:
В моем случае помогло следующее: в файле .htaccess, лежащий в корне Вашего сайта, следующую строку:
php_value max_input_vars 2000
Спасибо! за хорошо изложенный и проиндексированый поисковиками ответ.
Большое спасибо за наводку. Обратился в саппорт хостинга, и после увеличения вышеназванных переменных проблема исчезла.
Спасибо огромное, не догадался бы насчёт ограничения php 5.3.
Привет.
Как внести это изменение?, расскажи пжл.
Нужен доступ к php.ini
Если проблема на хостинге, то лучше обратиться в суппорт.
Если на домашнем компе, то могу растолковать…
Буду признателен если растолкуете. а то я в этом деле новичок, за ранее благодарю
Задание на ночь: найти php.ini. Скорее всего он в папке установки php.
Если в ручную найти не получается, установите плагин Q2W3 PHPinfo.
Откройте страницу PHPinfo.
Найдите строку Loaded Configuration File (9-я сверху) — здесь указан путь к вашему php.ini. Вот там и нужно произвести изменения, описанные в статье. Как сохраните файл — перезагрузите веб-сервер.
Спасибо! Все верно только доступ к php.ini необязателен можно
в .htaccess добавить php_value max_input_vars 2000