[转载]WordPress 2.0.2 上传图片标题乱码解决

上传文件描述乱码是 WordPress 的一个“固有”的 Bug 了。自从 1.5 版就有,当时我还专门写文章说明了解决办法。WordPress 升级到了 2.0.2,这个 Bug 却依然存在,虽然修改方式略有变化,但原理都是相同的,就是没有正确处理 PHP 函数 htmlentities() 的编码问题。

问题现象:撰写文章时,用书写界面下方的上传文件对话框可以上传附件。当在标题处键入非拉丁字符(多字节字符)时,上传成功后附件的描述为乱码。

解决方案:

1. 打开 /wp-includes/functions.php,找到函数 function htmlentities2($myHTML),将此函数按如下替换:

  1. <?php 
  2. function htmlentities2($myHTML) { 
  3.     return preg_replace("/&amp;([A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/","&$1",htmlentities($myHTML,ENT_QUOTES,get_settings('blog_charset')));
  4. } 
  5. ?>

2. 打开 /wp-admin/inline-uploading.php,搜索 htmlentities(,应该有两处,分别位于 237 行和 257 行,按如下更改:

  1. <?php 
  2. // 237 行,原始代码为:
  3. $title = htmlentities($image['post_title'], ENT_QUOTES);
  4. // 修改为
  5. $title = htmlentities($image['post_title'], ENT_QUOTES,get_settings('blog_charset'));
  6.  
  7. // 257 行,原始代码为:
  8. $title = htmlentities($attachment['post_title'], ENT_QUOTES);
  9. // 修改为
  10. $title = htmlentities($attachment['post_title'], ENT_QUOTES,get_settings('blog_charset'));
  11. ?>

以上代码测试通过 (WordPress 2.0.2) ,并已经应用于本站。

17fav 收藏本文
标签:, ,

相关日志 随机文章

Comments

Leave a Reply




请输入验证码

Use "<coolcode></coolcode>" to publish your code.

Line breaks and paragraphs are automatically converted.

Please keep comments relevant. Off-topic, offensive or inappropriate comments may be edited or removed.

京ICP备05059555号

收藏 & 分享

Powered by 17fav.com