我在我的function.php中使用WordPress Codex中的这个过滤器来允许上传svg,svgz和dxf文件。但是我上传的所有上传的测试文件都被WordPress的安全原因拒绝了。还有一些我必须注意才能使这个工作吗?
function my_custom_mime_types( $mimes ) {
// New allowed mime types.
$mimes['svg'] = 'image/svg+xml';
$mimes['svgz'] = 'image/svg+xml';
$mimes['dxf'] = 'application/dxf';
return $mimes;
}
add_filter( 'upload_mimes', 'my_custom_mime_types' );
答案 0 :(得分:1)
As of wordpress 4.7.1 this is a fix
// Allow SVG
add_filter( 'wp_check_filetype_and_ext', function($data, $file, $filename,
$mimes) {
global $wp_version;
if ( $wp_version !== '4.7.1' ) {
return $data;
}
$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';
$mimes['svgz'] = 'image/svg+xml';
$mimes['dxf'] = 'application/dxf';
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 :(得分:1)
感谢代码和参考Aaron!
我在codepen上找到了一些适应性,所以你不必手动更改WP版本:
function relationship_options_filter($options, $field, $the_post) {
$options[‘post_status’] = array(‘publish’);
return $options;
}
add_filter('acf/fields/post_object/query/key=field_59074524ac92e', 'relationship_options_filter', 10, 3);
// Allow SVG
add_filter( 'wp_check_filetype_and_ext', function($data, $file, $filename, $mimes) {
global $wp_version; if( $wp_version == '4.7' || ( (float) $wp_version < 4.7 ) ) { return $data; }
$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';
$mimes['svgz'] = 'image/svg+xml';
$mimes['dxf'] = 'image/x-dwg';
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' );