- ステータス
- 解決済み
- 報告対象
- WPML Multilingual CMS 3.6.1
- 解決されたバージョン
- 3.6.1
問題の概要
メニューに言語スイッチャーを追加するダイアログに、サイトに存在するすべてのメニューが表示されない場合があります。また、セカンダリ言語のメニューに言語スイッチャーが表示されません。
回避策
この問題は、term_idがterm_taxonomy_idと常に等しいとは限らない古いインストール環境で発生します。
この問題は将来のリリースで修正される予定です。それまでの間、現在リリースされているバージョンに手動でパッチを適用できます。
ステップ1
ファイルwp-content/plugins/sitepress-multilingual-cms/classes/language-switcher/class-wpml-ls-settings.phpの267行目を編集し、以下の部分を:
$menu_details = $this->sitepress->get_element_language_details( $menu->term_id, 'tax_nav_menu' );
次のように置き換えます。
$menu_details = $this->sitepress->get_element_language_details( $menu->term_taxonomy_id, 'tax_nav_menu' );
ステップ2
ファイルwp-content/plugins/sitepress-multilingual-cms/classes/translations/class-wpml-menu-element.phpの27行目を編集し、以下の部分を:
return new WPML_Menu_Element( $element_data->element_id, $this->sitepress, $this->wpml_cache );
次のように置き換えます。
return new WPML_Menu_Element( $element_data->term_id, $this->sitepress, $this->wpml_cache );