Ограничение меню, невозможно добавить новые пункты
Я использую WordPress 3.4.2 на VPS сервере. Когда я впервые перенес все данные WP со старого сервера на этот VPS, меню работало нормально. Однако сейчас я не могу редактировать или добавлять пункты в меню, а некоторые элементы были удалены. Как бы я ни пытался добавить их снова, они не появляются. WordPress не выдает никаких ошибок. Когда я добавляю пункты и нажимаю кнопку "Сохранить меню", после долгой паузы (30-45 секунд) WP просто сообщает: "Меню Главное меню обновлено." Но новые пункты отсутствуют как на сайте, так и в настройках меню WP.
Изначально, когда я только перенес сайт на этот VPS, в меню было 9 пунктов верхнего уровня и около 90 подпунктов — всего около 100 элементов меню. Все отображалось корректно.
Сейчас я ограничен 88 пунктами меню. Я могу добавить новый пункт только удалив другой.
Я не уверен, когда именно возникла эта проблема, так как мы редко редактируем меню. Впервые это заметили вчера, когда некоторые пункты меню исчезли — возможно, это совпало с добавлением или редактированием пункта меню. Но мы используем этот новый VPS уже около месяца.
В другом обсуждении на форуме я нашел упоминание о suhosin, который может вызывать проблемы с ограничением меню в WP 3.x, но он не установлен в нашей PHP.
Я пробовал Safari и Firefox (OS X). В обоих браузерах одинаковая проблема.

У меня была похожая проблема на сервере клиента, и решением в их случае стало увеличение настройки max_input_vars
в файле php.ini
.
Количество элементов меню, умноженное на количество атрибутов для каждого элемента, превышало допустимое количество входных переменных, поэтому сервер молча обрезал запрос, что приводило к простому исчезновению пунктов меню в конце.

Это был тот самый билет. Добавление max_input_vars = 2000
в мой php.ini и перезапуск сервера позволили мне добавить обрезанные пункты меню. (Странно, но иногда я получаю 404 ошибки при обновлении меню. То есть, обновление возвращает на ту же страницу WP /wp-admin/nav-menus.php, но показывает ошибку 404 вместо страницы редактирования меню. Однако, несмотря на это, меню обновляется корректно.)

Та же самая проблема была затронута в недавней статье от WPBeginner.
Вам нужно отредактировать ваш файл php.ini
. Поскольку вы используете VPS, у вас должен быть доступ к нему. В противном случае, вежливо попросите ваш хостинг сделать это за вас.
suhosin.post.max_vars = 5000
suhosin.request.max_vars = 5000
Также существует тикет в треке (#14134), где освещена эта проблема.

Как объяснено в исходном вопросе, мой сайт не использует suhosin. Однако есть связанная настройка PHP - max_input_vars, которую пришлось изменить. Смотрите комментарий от @Milo выше.

Я неоднократно сталкивался с этой проблемой. Попробуйте это быстрое решение:
- Откройте ваш любимый текстовый редактор (Блокнот, Dreamweaver и т.д.)
- Создайте файл с именем "php.ini"
- Вставьте следующий код:
php_value max_input_vars 7000
- Сохраните файл
- Загрузите файл в корневую папку вашего сайта через FTP (Filezilla, Rush FTP и т.д.)
:) Вот и всё!

Некоторые решения:
1) Просто изменяйте меню не через админ-панель, а через "настройщик" (потому что он использует AJAX-запросы)
2) Попробуйте добавить php_value max_input_vars 7000
в файл .htaccess
(или php.ini) [если вы используете shared hosting]
3) Попробуйте увеличить память, добавив в wp-config.php
: define("WP_MEMORY_LIMIT", "128M");
