#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