- 상태
- 미해결
- 보고된 제품
- WPML Media Translation 2.7.0
문제 개요
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,
]
]
];
}
}
}
참고:
이 코드는 복제된 이미지를 삭제하지 않으며, 새 언어를 생성할 때 복제 프로세스를 방지하기만 합니다.