这是我的WP安装中的一个bug,不知不觉中出现了;我不能肯定它是什么时候开始的。
描述一下:在网站历史的早期,“外观->菜单”页面中创建了一些菜单,它们工作得很好,如:
它们有菜单项,可以分配到菜单位置,可以重命名。最近,由于需要创建新菜单,我注意到创建新菜单时存在以下问题:
可以创建新菜单,但单击“创建菜单”后,包含用作菜单项的帖子和页面的侧栏仍呈灰色。无法重命名菜单:
菜单名不会显示在“菜单名”文本字段中,随后单击“创建菜单”只需在每次新单击时重复这些新的但不可用的菜单(例如:我创建Test1,然后创建Test2..现在有2个Test1条目和2个Test2条目…创建Test3重复效果,每个都创建3个)
单击“菜单”标题旁边的“在Customizer中管理”会导致以下错误:
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
我已经禁用了所有插件,问题仍然存在。以前有人碰到过这个吗?
最合适的回答,由SO网友:Florian Sander 整理而成
我也有同样的问题。我没有预先存在的菜单,但新创建的菜单具有与您描述的相同的症状。
在我的例子中,问题是定义不正确的表wp\\U terms。列term\\u id以及所有索引和主键上缺少AUTO\\u INCREMENT标志。
我只能假设更新过程在过去的某个时候搞砸了。我经营着一个非常古老的装置,最初建于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\\u term\\u分类法也可能涉及其中(我的情况中没有)。