Неиспользуемые меню и ошибка "Недопустимый идентификатор настройки виджета: пункт меню навигации[]"


Это ошибка в моей установке WP, которая возникла неосознанно; Я не могу точно сказать, когда она началась.

Чтобы описать это: на странице Внешний вид ->Меню в начале истории сайта были созданы меню, и они отлично работают, как в:

  • У них есть пункты меню
  • Они могут быть назначены местоположениям меню
  • Их можно переименовать

В последнее время, когда необходимо создать новые меню, я заметил следующие проблемы, когда создание нового меню:

Новые меню могут быть созданы, но после нажатия кнопки "Создать меню" боковая панель с записями и страницами для использования в качестве пунктов меню по-прежнему не отображается Меню не может быть переименовано:

  1. Название меню не отображается в текстовом поле "Название меню", и последующие нажатия кнопки "Создать меню" просто дублируют эти новые, но непригодные для использования меню каждое снова за новый клик (например: Я создаю Тест1, затем создаю Тест2.. теперь есть 2 записи Test1 и 2 записи Test2... создание Test3 повторяет эффект, создавая по 3 из каждого)
  2. Нажатие кнопки "Управление в настройщике" рядом с заголовком "Меню" приводит к следующей ошибке:
    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

Я отключил все плагины, и проблема сохраняется.

Кто-нибудь сталкивался с этим раньше?

Author: lintuxvi, 2016-02-23

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 также может быть задействована (в моем случае этого не было).

 2
Author: Florian Sander, 2016-10-06 22:52:50