Неиспользуемые меню и ошибка "Недопустимый идентификатор настройки виджета: пункт меню навигации[]"
Это ошибка в моей установке WP, которая возникла неосознанно; Я не могу точно сказать, когда она началась.
Чтобы описать это: на странице Внешний вид ->Меню в начале истории сайта были созданы меню, и они отлично работают, как в:
- У них есть пункты меню
- Они могут быть назначены местоположениям меню
- Их можно переименовать
В последнее время, когда необходимо создать новые меню, я заметил следующие проблемы, когда создание нового меню:
Новые меню могут быть созданы, но после нажатия кнопки "Создать меню" боковая панель с записями и страницами для использования в качестве пунктов меню по-прежнему не отображается Меню не может быть переименовано:
- Название меню не отображается в текстовом поле "Название меню", и последующие нажатия кнопки "Создать меню" просто дублируют эти новые, но непригодные для использования меню каждое снова за новый клик (например: Я создаю Тест1, затем создаю Тест2.. теперь есть 2 записи Test1 и 2 записи Test2... создание Test3 повторяет эффект, создавая по 3 из каждого)
- Нажатие кнопки "Управление в настройщике" рядом с заголовком "Меню" приводит к следующей ошибке:
Fatal error: Uncaught exception 'Exception' with message 'Illegal widget setting ID: nav_menu_item[]' in /Applications/MAMP/htdocs/discoverlongisland/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php:179 Stack trace: #0 /Applications/MAMP/htdocs/discoverlongisland/wp-includes/class-wp-customize-nav-menus.php(551): WP_Customize_Nav_Menu_Item_Setting->__construct(Object(WP_Customize_Manager), 'nav_menu_item[]', Array) #1 [internal function]: WP_Customize_Nav_Menus->customize_register(Object(WP_Customize_Manager)) #2 /Applications/MAMP/htdocs/discoverlongisland/wp-includes/plugin.php(525): call_user_func_array(Array, Array) #3 /Applications/MAMP/htdocs/discoverlongisland/wp-includes/class-wp-customize-manager.php(583): do_action('customize_regis...', Object(WP_Customize_Manager)) #4 [internal function]: WP_Customize_Manager->wp_loaded('') #5 /Applications/MAMP/htdocs/discoverlongisland/wp-includes/plugin.php(525): call_user_func_array(Array, Array) #6 /Applications/MAMP/htdocs/discoverlongisland/wp-settings. in /Applications/MAMP/htdocs/discoverlongisland/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php on line 179
Я отключил все плагины, и проблема сохраняется.
Кто-нибудь сталкивался с этим раньше?
1 answers
У меня была та же проблема. У меня не было ранее существовавших меню, но недавно созданные имели те же симптомы, что вы описали.
В моем случае проблема заключалась в плохо определенной таблице wp_terms. В нем отсутствовал флаг AUTO_INCREMENT в столбце term_id, а также все индексы и первичный ключ.
Я могу только предположить, что процесс обновления был испорчен в какой-то момент в прошлом. Я запускаю довольно древнюю установку, которая была первоначально установлена в 2005 году.
Следующее изменение исправило проблему для меня:
ALTER TABLE `wp_terms`
CHANGE COLUMN `term_id` `term_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (`term_id`),
ADD INDEX `name` (`name`),
ADD INDEX `slug` (`slug`);
Однако я бы рекомендовал сравнить вашу схему с текущей схемой. wp_term_taxonomy также может быть задействована (в моем случае этого не было).