将.kml文件上传到WordPress

use*_*825 4 wordpress kml

我正在尝试将.kml文件上传到WordPress.我有一点工作,但最新的WordPress更新似乎打破了它.

我正在使用这个功能

function my_myme_types($mime_types){
$mime_types['kml'] = 'application/vnd.google-earth.kml+xml'; //Adding kml extension
$mime_types['kmz'] = 'application/vnd.google-earth.kmz'; //Adding kmz files
return $mime_types;
}
add_filter('upload_mimes', 'my_myme_types', 1, 1);
Run Code Online (Sandbox Code Playgroud)

上传时收到此错误

"抱歉,出于安全考虑,不允许使用此文件类型."

Pas*_*eau 11

为了正确支持KML/KMZ文件,你将不得不使用text/xmlapplication/zip代替,因为WordPress的声明的MIME类型比较"真正的"检测MIME类型(参见功能wp_check_filetype_and_extwp-includes/functions.php有详细介绍)

function add_upload_mimes($mimes) {
  $mimes['kml'] = 'text/xml';
  $mimes['kmz'] = 'application/zip';
  return $mimes;
}
add_filter('upload_mimes', 'add_upload_mimes');
Run Code Online (Sandbox Code Playgroud)

更新(2019-02-28):kml被检测为text/xml而不是application/xml,相应地更改代码应解决下面评论中描述的问题.