今天整理博客时想起把之前发的 UserScript 写成文件传一份上去,没想到这么麻烦 ……

起因是把代码保存为 bloodcat.user.js 之后用wp自带的上传文件功能上传,结果发现上传之后自动保存的文件是 bloodcat.user_.js
但是 UserScript 插件只承认 .user.js 的文件,多一个字符也不行 ……

然后 Google 搜索也没什么结果,wp的支持论坛上倒是有一个相关的帖子,只不过给出的解决方案链接已经 404 了。
于是没办法,把 wp 的源码下载下来自己找 =_=||

感谢 IDE 强大的搜索功能,找到了问题出现在这里
原理是 wp 会把每个中间的“扩展名”检查一遍,如果不在内置的安全文件类型里就会在最后加上下划线。

不过实在想不明白中间的扩展名为何要加下划线 …… 如果是怕在服务器上执行的话直接改掉最后面的不就好了,何况 .user.js 应该也不算什么会对服务器安全起到危害的文件。

目前能想到的解决方案有两个:


  1. 自己到数据库和 FTP 里改掉文件名

  2. 删掉这部分的处理代码


因为不确定官方添加这段代码的目的,所以我暂时选择了麻烦至极的第一种方案 …… 然后在官方论坛开了个帖子,不知道什么时候能有答复(2014.8.30: 至今无人回复)