WPML

問題の概要

DiviテーマでWPMLを使用して翻訳を100%完了しても、ページが翻訳済みとしてマークされない問題が発生する場合があります。また、以下のエラーがログに記録される場合があります。

PHP Fatal error:  Uncaught TypeError: htmlspecialchars_decode(): Argument #1 ($string) must be of type string, array given in .../wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Shared/st/strategy/shortcode/class-wpml-pb-update-shortcodes-in-content.php:203

回避策

この問題はWPML 4.7で修正されました。 更新するとサイト上の問題は解決するため、この回避策が必要になるのは、まだ更新できない場合のみです。

作業を進める前に、必ずサイトの完全なバックアップを取得してください。

  • …/wp-content/plugins/sitepress-multilingual-cms/addons/wpml-page-builders/classes/Shared/st/strategy/shortcode/class-wpml-pb-update-shortcodes-in-content.phpファイルを開きます。
  • 206行目を探します。
  • 以下のコードを:
    if ( 'allow_html_tags' !== $encoding ) {
    	$translation = htmlspecialchars( htmlspecialchars_decode( $translation ) );
    }
  • 次のように置き換えます:
    // Ensure $translation is a string
    if (is_array($translation)) {
    	// Handle array to string conversion as needed
    	$translation = implode('', $translation);
    }
    
    if ( 'allow_html_tags' !== $encoding ) {
    	$translation = htmlspecialchars( htmlspecialchars_decode( $translation ) );
    }

すべての既知の問題

まだこの問題が発生しますか?

アップデートしても問題が解決しない場合は、サポートのご質問をお寄せください。一緒に調査いたします。