WPML
ステータス
解決済み
報告対象
WPML Multilingual CMS 4.5.10
解決されたバージョン
WPML 4.6.4
関連するプラグイン/テーマ
Elementor
トピックタグ
Bug, Compatibility

問題の概要

Elementorを必須とするデモコンテンツ(AstraやReal Homesテーマなど)をインポートすると、翻訳できないことがわかります。また、PHP 8では以下のエラーが発生します。

Fatal error: Uncaught TypeError: json_decode(): Argument #1 ($json) must be of type string, array given in …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/DataConvert.php:22

これは、デモコンテンツがシリアライズされたデータであるのに対し、統合コードはJSONエンコードされた文字列を想定しているために発生します。

回避策

先に進む前に、必ずサイトの完全なバックアップを作成してください。


  1. …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Integrations/Elementor/DataConvert.phpファイルを編集します。

  2. 21行目を探します。

  3. 変更前:
    public static function unserialize( $data ) {
        return json_decode( is_array( $data ) ? $data[0] : $data, true );
    }

    変更後:

    public static function unserialize( $data ) {
            $data = is_array( $data ) ? $data[0] : $data;
            if (is_string($data)) {
                return json_decode( $data, true );
            }
            return $data;
    }

すべての既知の問題 →