問題の概要
WPML設定メディア翻訳の新規コンテンツのメディアの処理方法にあるすべてのメディアオプションを無効にしても、新しい言語を追加するとサイトのメディアは引き続き複製されます。
回避策
この問題は修正されました。 最新バージョンにアップデートするとお使いのサイトで問題が解決するため、この回避策はまだアップデートできない場合にのみ必要です。
続行する前に、サイトの完全なバックアップを作成してください。
- wp-content/plugins/sitepress-multilingual-cms/classes/media/Loader.phpファイルを開きます。
public static function getData() {
return [
'name' => 'media_setup',
'data' => [
'endpoints' => [
'prepareForTranslation' => PrepareForTranslation::class,
'translateExistingMedia' => TranslateExistingMedia::class,
'duplicateFeaturedImages' => DuplicateFeaturedImages::class,
'finishMediaTranslation' => FinishMediaTranslation::class,
'prepareForSetup' => PrepareSetup::class,
'performSetup' => PerformSetup::class,
]
]
];
}
}変更後:
public static function getData() {
$media_handling = get_transient( 'media_handling' );
if ( ! $media_handling ) {
$check = get_option( '_wpml_media' );
if ( $check["new_content_settings"]["duplicate_media"] ) {
return [
'name' => 'media_setup',
'data' => [
'endpoints' => [
'prepareForTranslation' => PrepareForTranslation::class,
'translateExistingMedia' => TranslateExistingMedia::class,
'duplicateFeaturedImages' => DuplicateFeaturedImages::class,
'finishMediaTranslation' => FinishMediaTranslation::class,
'prepareForSetup' => PrepareSetup::class,
'performSetup' => PerformSetup::class,
]
]
];
}
set_transient('media_handling', true, DAY_IN_SECONDS);
} else {
return [
'name' => 'media_setup',
'data' => [
'endpoints' => [
'prepareForTranslation' => PrepareForTranslation::class,
'duplicateFeaturedImages' => DuplicateFeaturedImages::class,
'finishMediaTranslation' => FinishMediaTranslation::class,
'prepareForSetup' => PrepareSetup::class,
'performSetup' => PerformSetup::class,
]
]
];
}
}
}注意:
このコードは複製された画像を削除するものではありません。新規言語を作成する際の複製プロセスを防止するだけです。