- Статус
- Решено
Обзор проблемы
Если установлен HyperDB, при создании дубликата перевода может возникнуть следующая ошибка:
WordPress database error Field 'translator_id' doesn't have a default value for query INSERT INTO `wp_icl_translation_status` (`status`, `translation_id`) VALUES ('9', '3855') made by WPML_Post_Status::set_status
Причина в том, что HyperDB включает несовместимые режимы SQL: ‘NO_ZERO_DATE’, ‘ONLY_FULL_GROUP_BY’, ‘STRICT_TRANS_TABLES’, ‘STRICT_ALL_TABLES’, ‘TRADITIONAL’. Эти режимы были объявлены несовместимыми начиная с версии WordPress 3.9 и выше, и они отключены в стандартном классе wpdb.
Если такие несовместимые режимы заданы в настройках MySQL на Вашем сервере, а на сайте установлен HyperDB, то при создании дубликатов в WPML возникают ошибки.
Команда разработчиков WPML поддерживает функции, официально поддерживаемые WordPress, поэтому исправление для HyperDB не может быть включено в код ядра WPML.
Обходное решение
Мы создали специальный плагин под названием WPML HyperDB, который исправляет описанную выше проблему. Плагин можно скачать здесь.