WPML
Status
Resolved
Type
Bug
Reported for
WPML Media Translation 2.7.0
Related plugin/theme
SVG Support
Topic tags
Compatibility

Overview of the issue

If you are using the SVG Support (opens in a new tab) plugin, you will notice that when the WPML Media Translation plugin is active, the SVG image URL is incomplete. For example:

  • With WPML Media Translation activated: https://domain.com/wp-content/uploads/logo.svg
  • Without WPML Media Translation activated: https://domain.com/wp-content/uploads/2022/05/logo.svg

Workaround

  • Add the following snippet to your functions.php theme file:
    // WPML Workaround for compsupp-6933
    add_filter('wp_get_attachment_metadata', 'wpml_compsupp6933_fix_attachment_metadata_file_path', 10, 2);
    
    function wpml_compsupp6933_fix_attachment_metadata_file_path($data, $attachment_id) {
    
    	// Only apply the workaround if WPML Media and SVG Support plugins are active
    	if( class_exists('WPML_Media') && function_exists('bodhi_svgs_generate_svg_attachment_metadata') ) {
    		
    		if (isset($data['file']) && !preg_match('/\d{4}\/\d{2}\//', $data['file'])) {
    			// Get the upload directory info
    			$upload_dir_info = wp_upload_dir();
    	
    			// Extract the year and month from the basedir
    			$year_month = date('Y/m', strtotime(get_post_field('post_date', $attachment_id)));
    	
    			// Prepend the year and month to the file
    			$data['file'] = $year_month . '/' . $data['file'];
    			
    		}
    	}    
    
        return $data;
    }

All known issues