- ステータス
- 解決済み
問題の概要
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」という専用プラグインを作成しました。プラグインはこちらからダウンロードできます。