无论使用何种链接,生成的文件都是相同的。我通过每个链接下载了文件,并比较了这些文件,它们是相同的。
所以结论是,这是一个标题的问题。我从ms博客版本的url中获得的信息是:
Content-Type: application/msword
与我从direct link获得的相比:
Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document
这似乎是谷歌文档理解的一种类型。
我的结论是WordPress为该文件提供的MIME类型,application/msword
, 谷歌文档并不理解这一点。
您可以通过筛选来解决此问题upload_mimes
, 以及更改的结果MIME类型。docx文件与Google Docs理解的正确文件相匹配:
function my_filter_upload_mimes( $mimes ) {
$mimes[\'doc|docx\'] = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
return $mimes;
}
add_filter( \'upload_mimes\', \'my_filter_upload_mimes\' );
WordPress在函数中使用此筛选器
get_allowed_mime_types()
, 所使用的
wp_check_filetype()
确定中的输出MIME类型
wp-includes/ms-files.php
Update
wp-includes/ms-files.php
使用
SHORTINIT
, 因此不会加载主题,因此如果将其放置在主题代码中,则上述代码将无法工作。
另一方面,插件仍将加载SHORTINIT
已启用删除>
(Otto编辑:这是不正确的,SHORTINIT阻止插件加载。请参阅第95行附近的wp-settings.php,了解SHORTINIT标志在何处切断加载过程,并注意在此之后加载插件。以下代码将不起作用。)
(Bendoh编辑:D\'oh!我在测试时注释掉了SHORTINIT声明,因此我的解决方案did 工作,但你是对的,如果不弄脏核心,它就不会工作。我删除了下面的代码,因为它实际上不起作用。奥托的回答是正确的)