- Статус
- Решено
- Заявлено для
- WPML Multilingual CMS 3.1.9.5
- Решено в
- 3.1.9.7
Обзор проблемы
- Перейдите в меню и создайте его на языке по умолчанию.
- Попробуйте создать меню на дополнительном языке.
- После сохранения Вы получите ошибку 404.
Обходное решение
Эта проблема была решена в WPML 3.1.9.7
Вам следует обновить WPML до последней версии, чтобы устранить эту проблему
Если Вы не хотите или не можете обновить WPML, выполните следующие действия:
- Скачайте обновлённую версию iclNavMenu.class.php
- Используйте её для замены
sitepress-multilingual-cms/inc/wp-nav-menus/iclNavMenu.class.php:
Скорее всего, это означает, что Вам нужно использовать FTP-клиент и загрузить файл вsitepress-multilingual-cms/inc/wp-nav-menus: если появится запрос на перезапись существующего файла, просто подтвердите его.
В случае возникновения проблем
Если Вы столкнулись с любой из этих проблем:
Fatal error: Call to undefined method SitePress::get_setting() in /wp-content/plugins/sitepress-multilingual-cms/inc/wp-nav-menus/iclNavMenu.class.php on line 121PHP Fatal error: Call to undefined function wpml_prepare_in() in /wp-content/plugins/sitepress-multilingual-cms/inc/wp-nav-menus/iclNavMenu.class.php on line 548- Белая/пустая страница
Выполните следующие действия:
- Перейдите в «WPML» -> «Поддержка»
- Нажмите на «информация для отладки»: Вы увидите серое текстовое поле с большим количеством информации (это объект JSON)
- Скопируйте содержимое текстового поля в текстовый файл и назовите этот файл как хотите: лучше использовать расширение «json», но это не обязательно
- Создайте нового пользователя WordPress с правами администратора для отладки проблемы
- Установите бесплатный плагин «Duplicator» (здесь).
При желании Вы можете использовать другой плагин, но следующие инструкции относятся именно к Duplicator (хотя их можно легко адаптировать и для других плагинов) - Создайте новый пакет:
- Перейдите в «Duplicator» -> «Пакеты»
- Нажмите «Создать новый»
- Пройдите шаги мастера, оставив все настройки по умолчанию (при желании Вы можете исключить некоторые файлы, которые, по Вашему мнению, не нужны или сделают пакет слишком большим, например, файлы в папке «uploads»)
- Как только снимок будет готов, скачайте файлы «installer» и «package»
- Создайте папку и поместите в неё файлы из шагов 3 и 6.4 (то есть текстовый файл с информацией для отладки, установщик и пакет).
- Заархивируйте эту папку в формате ZIP и загрузите её на Google Drive, Dropbox или аналогичный сервис (или загрузите всю папку без архивирования и поделитесь ей)
- Перейдите на наш форум поддержки и создайте запрос в службу поддержки со следующим заголовком: «Workaround issues – Saving menus in non default language leads to 404 error»: мы попросим Вас в приватном режиме поделиться файлами, которые Вы сохранили на шаге 8.
Если Вы используете слишком старую версию WPML, это обходное решение может не сработать.
In these cases, you may get a white page, or this errors: PHP Fatal error: Call to undefined function wpml_prepare_in()
Чтобы исправить эту конкретную ошибку, выполните следующие действия:
откройте'wp-content/plugins/sitepress-multilingual-cms/inc/functions.php'
и найдитеwpml_prepare_in
- Если Вы не можете его найти, добавьте следующее в конец файла:
function wpml_prepare_in( $items, $format = '%s' ) { global $wpdb; $items = (array) $items; $how_many = count( $items ); if ( $how_many > 0 ) { $placeholders = array_fill( 0, $how_many, $format ); $prepared_format = implode( ",", $placeholders ); $prepared_in = $wpdb->prepare( $prepared_format, $items ); } else { $prepared_in = ""; } return $prepared_in; }