web-dev-qa-db-ja.com

使用できないメニューと「不正なウィジェット設定ID:nav_menu_item []」エラー

これは私のWPインストールのバグで、無意識のうちにしわになりました。それがいつ始まったのかはっきりとは言えません。

説明すると、サイトの歴史の初期の段階で[外観] - > [メニュー]ページで作成されたメニューがあり、それらは次のように完璧に機能します。

  • 彼らはメニュー項目を持っています
  • それらはメニュー位置に割り当てることができます
  • それらは名前を変更することができます

最近、新しいメニューを作成する必要があるため、新しいメニューを作成するときに次の問題に気付きました。

新しいメニューを作成することはできますが、[メニューの作成]をクリックしても、メニュー項目として使用する投稿とページのサイドバーはまだグレー表示されています。メニューの名前を変更することはできません。

  1. メニュー名は[メニュー名]テキストフィールドには表示されず、[メニューを作成]をクリックしても、新しく使用できなくなったメニューは、クリックごとに重複して表示されます。 (例:Test1を作成し、次にTest2を作成します。今度は2つのTest1エントリ、および2つのTest2エントリがあります... Test3を作成すると、それぞれ3つ作成します)
  2. [メニュー]見出しの横にある[カスタマイザで管理]をクリックすると、次のエラーが発生します。
致命的なエラー:/ Applications/MAMP/htdocs/discoverlongisland/wp-includes/customize/class-wp-customize-nav-menuのメッセージ「不正なウィジェット設定ID:nav_menu_item []」を伴う例外「Exception」が見つかりませんでした-item-setting.php:179 
スタックトレース:#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 [内部関数]:WP_Customize_Nav_Menus-> customize_register(Object(WP_Customize_Manager))#2 /アプリケーション/ MAMP/htdocs/discoverlongisland/wp-includes/plugin.php(525):call_user_func_array(配列、配列)
#3 /アプリケーション/ MAMP/htdocs/disververongisland/wp-include/class-wp-custom-manager.php(583) ):do_action( 'customize_regis ...'、Object(WP_Customize_Manager))
#4 [内部関数]:WP_Customize_Manager-> wp_loaded( '')
#5/Applications/MAMP/htdocs/discoverlongisland/wp-インクルード/ plugin.php(525):call_user_func_array(配列、配列)
#6/Applications/MAMP/htdocs/discoverlongisland/wp-settings。 179行目の/Applications/MAMP/htdocs/discoverlongisland/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php内。

すべてのプラグインを無効にしましたが、問題は解決しません。

誰かが前にこれに遭遇したことがありますか?

1
lintuxvi

私は同じ問題を抱えていました。私は既存のメニューを持っていませんでしたが、新しく作成されたものはあなたが説明したのと同じ症状を持っていました。

私の場合、問題は正しく定義されていないテーブルwp_termsでした。列term_idのAUTO_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_term_taxonomyも関係しているかもしれません(私の場合はそうではありませんでした)。

2
Florian Sander