SVG не поддерживается в новой версии wordpress

#php #html #wordpress

Вопрос:

У меня есть новый wordpress 5.8.1, но svg в загрузчике мультимедиа больше не работает.

Я использовал этот код для интеграции svgs:

 function cc_mime_types($mimes) {
  $mimes['svg'] = 'image/svg xml';
  return $mimes;
}
add_filter('upload_mimes', 'cc_mime_types');
 

Почему это не работает?

Ответ №1:

Сначала вам нужно указать тип и расширение файла. вот мой код для этого !

 // Wp v4.7.1 and higher
add_filter( 'wp_check_filetype_and_ext', function($data, $file, $filename, $mimes) {
  $filetype = wp_check_filetype( $filename, $mimes );
  return [
      'ext'             => $filetype['ext'],
      'type'            => $filetype['type'],
      'proper_filename' => $data['proper_filename']
  ];

}, 10, 4 );

function cc_mime_types( $mimes ){
  $mimes['svg'] = 'image/svg xml';
  return $mimes;
}
add_filter( 'upload_mimes', 'cc_mime_types' );

function fix_svg() {
  echo '<style type="text/css">
        .attachment-266x266, .thumbnail img {
             width: 100% !important;
             height: auto !important;
        }
        </style>';
}
add_action( 'admin_head', 'fix_svg' );
 

Комментарии:

1. Вы не отвечаете на вопрос «Почему это не работает ?»

2. Я отредактировал свой ответ ., пожалуйста, проверьте его.

Ответ №2:

После WP 4.7 вам не нужно использовать svg xml с вашим текущим кодом, или вам нужно указать тип файла, как показано ниже

 function cc_mime_types($mimes) {
  $mimes['svg'] = 'image/svg';
  return $mimes;
}
add_filter('upload_mimes', 'cc_mime_types');
 

Вы можете проверить множество различных решений здесь — https://wordpress.stackexchange.com/questions/313951/how-to-upload-svg-in-wordpress-4-9-8