试着用纯代码的方式来开启wordpress SVG格式图片上传功能。目前看使用Block编辑器图片能正常上传和显示。
function minuo_allow_additional_mime_types($mime_types) {
if ( ! current_user_can( 'administrator' ) ) {
return $mime_types;
}
$mime_types['svg'] = 'image/svg+xml';
$mime_types['svgz'] = 'image/svg+xml';
$mime_types['webp'] = 'image/webp';
$mime_types['ico'] = 'image/vnd.microsoft.icon';
return $mime_types;
}
add_filter('upload_mimes', 'minuo_allow_additional_mime_types');
function minuo_wp_check_filetype_and_ext( $wp_check_filetype_and_ext, $file, $filename, $mimes, $real_mime ) {
if ( ! $wp_check_filetype_and_ext['type'] ) {
$check_filetype = wp_check_filetype( $filename, $mimes );
$ext = $check_filetype['ext'];
$type = $check_filetype['type'];
$proper_filename = $filename;
if ( $type && 0 === strpos( $type, 'image/' ) && 'svg' !== $ext ) {
$ext = false;
$type = false;
}
$wp_check_filetype_and_ext = compact( 'ext', 'type', 'proper_filename' );
}
return $wp_check_filetype_and_ext;
}
add_filter('wp_check_filetype_and_ext', 'minuo_wp_check_filetype_and_ext' , 10, 5);
感谢你的代码,问题已经解决了。
@ 夜未央: 好的。
字也svg 是不是也是密码的一种了。我猜。
@ 万有引力: 以前上学的时候,接触过很多种藏信息的手段。
@ Minuo.St: 什么专业课.还是兴趣
@ 万有引力: 说是专业不就暴露了?所以我是自学的。
@ Minuo.St: 自学的强.
连SVG也要支持,难道是做设计的?
@ 平安家属子痕: 试一试而已……
不过svg有一定风险。
@ 粽叶加米: svg可以包含有效的HTML,那么就存在注入攻击的风险。
这里有一篇文章解释了这些风险:
标题:SVG Security Risks – not just a scalable graphic
链接:https://www.securesystems.de/blog/svg-security-risks-not-just-a-scalable-graphic/