Cargar archivos SVG a Medios en WordPress
Por defecto la biblioteca de medios de wordpress no nos permite subir archivos vectoriales formato svg, que cada vez son mas utilizados. Al intentar arrastrar un archivo SVG nos notifica el siguiente mensaje de error.
Para poder cargar este tipo de archivos a nuestra biblioteca, necesitamos editar el archivo functions.php de nuestro tema. Puedes editar este archivo vía FTP o desde el menú Apariencia > Editor.
Tenemos que añadir el siguiente código al final:
1 2 3 4 5 | function cc_mime_types($mimes) { $mimes['svg'] = 'image/svg+xml'; return $mimes; } add_filter('upload_mimes', 'cc_mime_types'); |
Como observaras tampoco se muestran correctamente la pre visualización (miniaturas) de los archivos SVG en Medios. Esto puedes arreglarlo agregando tambien el siguiente código al final de tu archivo functions.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | /*Arregla las miniaturas en la galería. By iontics.com*/ function common_svg_media_thumbnails($response, $attachment, $meta){ if($response['type'] === 'image' && $response['subtype'] === 'svg+xml' && class_exists('SimpleXMLElement')) { try { $path = get_attached_file($attachment->ID); if(@file_exists($path)) { $svg = new SimpleXMLElement(@file_get_contents($path)); $src = $response['url']; $width = (int) $svg['width']; $height = (int) $svg['height']; //media gallery $response['image'] = compact( 'src', 'width', 'height' ); $response['thumb'] = compact( 'src', 'width', 'height' ); //media single $response['sizes']['full'] = array( 'height' => $height, 'width' => $width, 'url' => $src, 'orientation' => $height > $width ? 'portrait' : 'landscape', ); } } catch(Exception $e){} } return $response; } add_filter('wp_prepare_attachment_for_js', 'common_svg_media_thumbnails', 10, 3); |
Hola, quisiera añadir el código en el archivo functions.php pero con la versión 5.8.2 no encuentro cómo llegar a él. En el menú «apariencia» no existe «editor», y ninguna de las opciones me lleva a la gestión de archivos. Tampoco desde Theme panel. Saben cómo se puede acceder a el archivo? Gracias
Pude resolver el error mediante la instalación del plugin recomendado, muchas gracias. Al margen, opino que no debería ser necesario dar tantas vueltas para admitir la carga de archivos en los que uno confía plenamente, pero, obviamente, ésto trasciende el alcance de éste post. Nuevamente gracias.
Los cambios en tu código PHP se han revertido debido a un error en la línea 88 del archivo wp-content/themes/newshop-ecommerce/functions.php. Por favor, arréglalo y trata de guardar de nuevo.
syntax error, unexpected end of file