<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>花儿开了 &#187; hack</title>
	<atom:link href="http://blog.istef.info/tag/hack/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.istef.info</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 06 Jun 2010 05:52:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<atom:link rel='hub' href='http://blog.istef.info/?pushpress=hub'/>
		<item>
		<title>黑 Google 的 IE 漏洞代码已公布</title>
		<link>http://blog.istef.info/2010/01/18/google-hack-code-released/</link>
		<comments>http://blog.istef.info/2010/01/18/google-hack-code-released/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 07:40:44 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[0day]]></category>
		<category><![CDATA[brower]]></category>
		<category><![CDATA[hack]]></category>

		<guid isPermaLink="false">http://blog.istef.info/?p=2093</guid>
		<description><![CDATA[Google 中国那点儿破事儿还没个最终结果，各方关注的重点不一。安全公司通过收集到的数据，基本把这次事件中 Google 及其它一些公司所遭受的黑客攻击相关的内容，特别是一些技术细节公布了出来。结果这次惹祸的不是别人，又是万恶的 Internet Explore! 这次行动中所用的各种攻击 Internet Explore 的手法中，用于攻击 IE 6 的漏洞 Aurora 已经被公布出来。下面是一个攻击过程的模拟视频，看起来相当的恐怖。。。 The &#8220;Aurora&#8221; IE Exploit in Action from The Crew of Praetorian Prefect on Vimeo. 需要细节的朋友可以点进去上面的链接查看。而且根据 Mcafee 的安全报告，IE7/IE8 同样有 0day 漏洞，同样遭受了攻击，只是目前方法还没有被公布而已。 对于我们普通用户，特别是在中国这片 Windows XP 和 IE 极其盛行的土地，我再一次呼吁大家，为了安全，把你的默认浏览器换成非 IE 吧。注意别跟我说什么 Maxthon, the world 之类的，那些也是 IE 核心的。这些 0day 漏洞已经被公布出来了，现在即使是个小学生，拿到这些代码也可以随便删掉或是偷走你电脑上的文件，而且是在你完全不知情的情况下！ 非 IE 核心的浏览器有很多，我个人比较推荐 Google [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.istef.info/wp-content/uploads/2010/01/IE_icon.jpeg"><img class="alignnone size-full wp-image-2094" title="IE_icon" src="http://blog.istef.info/wp-content/uploads/2010/01/IE_icon.jpeg" alt="" width="200" height="200" /></a></p>
<p>Google 中国<a href="http://blog.istef.info/2010/01/14/keep-silent-about-google/">那点儿破事儿</a>还没个最终结果，各方关注的重点不一。安全公司通过收集到的数据，基本把这次事件中 Google 及其它一些公司所遭受的黑客攻击相关的内容，特别是一些技术细节公布了出来。结果这次惹祸的不是别人，又是万恶的 Internet Explore!</p>
<p>这次行动中所用的各种攻击 Internet Explore 的手法中，用于攻击 IE 6 的漏洞 Aurora 已经被公布出来。下面是一个攻击过程的模拟视频，看起来相当的恐怖。。。</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="178" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=8771582&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="178" src="http://vimeo.com/moogaloop.swf?clip_id=8771582&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p><a href="http://vimeo.com/8771582">The &#8220;Aurora&#8221; IE Exploit in Action</a> from <a href="http://vimeo.com/prefects">The Crew of Praetorian Prefect</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>需要细节的朋友可以点进去上面的链接查看。而且根据 Mcafee 的安全报告，IE7/IE8 同样有 0day 漏洞，同样遭受了攻击，只是目前方法还没有被公布而已。</p>
<p>对于我们普通用户，特别是在中国这片 Windows XP 和 IE 极其盛行的土地，我再一次呼吁大家，为了安全，把你的默认浏览器换成非 IE 吧。注意别跟我说什么 Maxthon, the world 之类的，那些也是 IE 核心的。这些 0day 漏洞已经被公布出来了，现在即使是个小学生，拿到这些代码也可以随便删掉或是偷走你电脑上的文件，而且是在你完全不知情的情况下！</p>
<p>非 IE 核心的浏览器有很多，我个人比较推荐 <a href="http://www.google.com/chrome" target="_blank">Google Chrome</a>，当然如果你喜欢 Firefox 也是不错的。用了这类浏览器，您可能会在上网银的时候碰到些问题需要换回 IE，但我觉得及时这样麻烦点儿也是值得的，安全才是最重要。而且这两款浏览器都有扩展系统，选好扩展后工作效率绝对会比 IE 高很多，绝对不输给 maxthon。别等了，今天就换吧！
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2010%2F01%2F18%2Fgoogle-hack-code-released%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2010%2F01%2F18%2Fgoogle-hack-code-released%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2010/01/18/google-hack-code-released/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Google 实时搜索</title>
		<link>http://blog.istef.info/2009/09/14/google-realtime-search/</link>
		<comments>http://blog.istef.info/2009/09/14/google-realtime-search/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 00:12:11 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Experiences]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[realtime]]></category>
		<category><![CDATA[search]]></category>

		<guid isPermaLink="false">http://blog.istef.info/?p=1903</guid>
		<description><![CDATA[ReadWriteWeb 上一篇文章讲述了如果通过 URL Hack 的方法得到特定时间段的 Google 搜索结果，稍加修改这个参数，甚至可以得到 10 分钟以内甚至几秒钟以内的搜索结果。这样其实就变相得到了近似“实时”的搜索结果。鉴于 Twitter 之类的服务日益盛行，这一功能看来越来越有用。 虽然 RWW 上讲的方法并不困难，但对于普通用户来说，修改 URL 还是复杂了一点儿，特别是如果经常使用就更加烦了。现在，如果你想体验 Google Real Time Search 又懒得自己修改参数的话，可以通过下面这个 Bookmarklet 做到： Google Realtime! 你可以把这个 Bookmarklet 拖动到浏览器的收藏栏上，点击之，输入关键字即可得到最近十分钟收录的搜索结果。当然，你也可以按照 RWW 讲述的方法，修改 &#38;tbs=qdr:n10 这一段获得其它时间段的结果，例如改为 n30 返回 30 分钟内的结果，s10 则返回十秒钟内的结果。 Google 的玩法又多了一种，大家可以发挥一下创意，实时搜索可以做的事情还是相当有趣的。]]></description>
			<content:encoded><![CDATA[<p>ReadWriteWeb 上一篇文章讲述了<a href="http://www.readwriteweb.com/archives/make_google_search_real-time_with_this_url_hack.php" target="_blank">如果通过 URL Hack 的方法得到特定时间段的 Google 搜索结果</a>，稍加修改这个参数，甚至可以得到 10 分钟以内甚至几秒钟以内的搜索结果。这样其实就变相得到了近似“实时”的搜索结果。鉴于 Twitter 之类的服务日益盛行，这一功能看来越来越有用。</p>
<p>虽然 RWW 上讲的方法并不困难，但对于普通用户来说，修改 URL 还是复杂了一点儿，特别是如果经常使用就更加烦了。现在，如果你想体验 Google Real Time Search 又懒得自己修改参数的话，可以通过下面这个 Bookmarklet 做到：</p>
<p><a title="Google Realtime Search" href="javascript:(function()%7B%20p=prompt('Search%20term:','');%20if(p)%7B%20document.location.href='http://www.google.com/search?as_qdr=n10&amp;q='%20+%20escape(p)%7D%20%7D)();">Google Realtime!</a></p>
<p>你可以把这个 Bookmarklet 拖动到浏览器的收藏栏上，点击之，输入关键字即可得到最近十分钟收录的搜索结果。当然，你也可以按照 RWW 讲述的方法，修改 &amp;tbs=qdr:n10 这一段获得其它时间段的结果，例如改为 n30 返回 30 分钟内的结果，s10 则返回十秒钟内的结果。</p>
<p><img class="alignnone size-full wp-image-1905" title="google realtime search" src="http://blog.istef.info/wp-content/uploads/2009/09/09-9-13-1.jpg" alt="google realtime search" width="537" height="331" /></p>
<p>Google 的玩法又多了一种，大家可以发挥一下创意，实时搜索可以做的事情还是相当有趣的。
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2009%2F09%2F14%2Fgoogle-realtime-search%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2009%2F09%2F14%2Fgoogle-realtime-search%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2009/09/14/google-realtime-search/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>每日荐网：Hack MSN Spaces</title>
		<link>http://blog.istef.info/2007/11/26/daily-recommend-hack-msn-spaces/</link>
		<comments>http://blog.istef.info/2007/11/26/daily-recommend-hack-msn-spaces/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 06:00:30 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[每日推荐]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[msn]]></category>
		<category><![CDATA[spaces]]></category>

		<guid isPermaLink="false">http://blog.istef.info/2007/11/26/daily-recommend-hack-msn-spaces/</guid>
		<description><![CDATA[如今在国内，最流行的一件事莫过于写博客。尤其是今年，数以千万计的新博客如雨后春笋般诞生。在这个开博大潮中，各种各样的 BSP 绝对功不可没。在这其中，微软的 MSN Spaces 由于可以和 Windows Live Messenger 无缝集成，得到了不少朋友的喜爱。 Hack MSN Spaces 也是一个创建在 Live Spaces 平台上的博客，但一进入这个博客，你就会深刻的感觉到它的与众不同：页面中的元素比一般的 Live Spaces 丰富许多。Hack MSN Spaces 事实上就是教你怎么&#x201C;折腾&#x201D;Live Spaces 的一个指南。 众所周知，Live Spaces (原名 MSN Spaces) 最让人不爽的地方，就是其界面定制能力比较差。虽然支持拖放等特性，让我们可以很容易调整页面中的模块，但由于不支持更深度的自定义，仅仅是原有的那些调整，难免让做出来的博客显得千篇一律。Hack MSN Spaces 中介绍了大量定制 MSN Spaces 的技巧，例如如何添加订阅图标，如何放置一个或者更多的 HTML Sandbox，甚至如何将 Google Gadgets 放进 Spaces 页面中。有了这些技巧，我们定制 Spaces 的选择就丰富很多了。特别是那几千个 Google Gadgets，如果把它们很好的用到 Spaces 中来，绝对让你的 Spaces 与众不同。 Hack MSN Spaces [...]]]></description>
			<content:encoded><![CDATA[<p><img id="id" height="101" alt="hack-msn-space" src="http://blog.istef.info/wp-content/uploads/2007/11/hack-msn-space.jpg" width="429" border="0" /> </p>
<p>如今在国内，最流行的一件事莫过于写博客。尤其是今年，数以千万计的新博客如雨后春笋般诞生。在这个开博大潮中，各种各样的 BSP 绝对功不可没。在这其中，微软的 MSN Spaces 由于可以和 Windows Live Messenger 无缝集成，得到了不少朋友的喜爱。</p>
<p><a href="http://d3vmax.spaces.live.com/">Hack MSN Spaces</a> 也是一个创建在 Live Spaces 平台上的博客，但一进入这个博客，你就会深刻的感觉到它的与众不同：页面中的元素比一般的 Live Spaces 丰富许多。Hack MSN Spaces 事实上就是教你怎么&#x201C;折腾&#x201D;Live Spaces 的一个指南。</p>
<p>众所周知，Live Spaces (原名 MSN Spaces) 最让人不爽的地方，就是其界面定制能力比较差。虽然支持拖放等特性，让我们可以很容易调整页面中的模块，但由于不支持更深度的自定义，仅仅是原有的那些调整，难免让做出来的博客显得千篇一律。Hack MSN Spaces 中介绍了大量定制 MSN Spaces 的技巧，例如如何添加订阅图标，如何放置一个或者更多的 HTML Sandbox，甚至如何将 Google Gadgets 放进 Spaces 页面中。有了这些技巧，我们定制 Spaces 的选择就丰富很多了。特别是那几千个 Google Gadgets，如果把它们很好的用到 Spaces 中来，绝对让你的 Spaces 与众不同。</p>
<p>Hack MSN Spaces 同时也是一个关注微软信息，以及 Web 2.0 发展的博客，不过这方面的内容相对较少，也就略过不谈了。</p>
<p>据我所知，如今使用 MSN Spaces 的朋友不占少数，特别是它可以在 MSN 好友列表中&#x201C;闪小花&#x201D;的功能，得到了很多人的喜爱。如果你也准备在 Live Spaces 上开博，或者已经在用 Live Spaces 了，您不妨看看 Hack MSN Spaces，学习更多的定制技巧，说不定能让你的 Spaces 给人眼前一亮的感觉。</p>
<p>btw: 刚发现 Hack MSN Spaces 顶部没有广告，谁知道是怎么去掉的吗？</p>
<p><a href="http://www.feedsky.com/challenge/art/1147/feedsky/istef/~/gtsp/zt1/d1828/lnk.html"><img id="id" src="http://www.feedsky.com/challenge/art/1147/feedsky/istef/~/gtsp/zt1/d1828/pic.jpg" /></a> ，读完本文别忘了<a href="http://www.feedsky.com/challenge/user.html?u=f71feffb"><strong>顺手给我投个票</strong></a>啊。</p>
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2007%2F11%2F26%2Fdaily-recommend-hack-msn-spaces%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2007%2F11%2F26%2Fdaily-recommend-hack-msn-spaces%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2007/11/26/daily-recommend-hack-msn-spaces/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WordPress 2.0.2 上传图片标题乱码解决</title>
		<link>http://blog.istef.info/2006/04/26/wordpress-202-title-encoding-error-of-inline-upload-bug-and-solution/</link>
		<comments>http://blog.istef.info/2006/04/26/wordpress-202-title-encoding-error-of-inline-upload-bug-and-solution/#comments</comments>
		<pubDate>Wed, 26 Apr 2006 15:31:02 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[encode]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[upload]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.istef.info/2006/04/26/wordpress-202-title-encoding-error-of-inline-upload-bug-and-solution/</guid>
		<description><![CDATA[上传文件描述乱码是 WordPress 的一个“固有”的 Bug 了。自从 1.5 版就有，当时我还专门写文章说明了解决办法。WordPress 升级到了 2.0.2，这个 Bug 却依然存在，虽然修改方式略有变化，但原理都是相同的，就是没有正确处理 PHP 函数 htmlentities() 的编码问题。 问题现象：撰写文章时，用书写界面下方的上传文件对话框可以上传附件。当在标题处键入非拉丁字符（多字节字符）时，上传成功后附件的描述为乱码。 解决方案：1. 打开 /wp-includes/functions.php，找到函数 function htmlentities2($myHTML)，将此函数按如下替换： &#60;?php function&#160;htmlentities2($myHTML) { &#160; &#160; return&#160;preg_replace(&#34;/&#38;amp;([A-Za-z]{0,4}\w{2,3};&#124;#[0-9]{2,3};)/&#34;,&#34;&#38;$1&#34;,htmlentities($myHTML,ENT_QUOTES,get_settings('blog_charset'))); } ?&#62; 2. 打开 /wp-admin/inline-uploading.php，搜索 htmlentities(，应该有两处，分别位于 237 行和 257 行，按如下更改： &#60;?php // 237 行，原始代码为： $title = htmlentities($image['post_title'], ENT_QUOTES); // 修改为 $title = htmlentities($image['post_title'], ENT_QUOTES,get_settings('blog_charset')); &#160; // 257 行，原始代码为： [...]]]></description>
			<content:encoded><![CDATA[<p>上传文件描述乱码是 WordPress 的一个“固有”的 Bug 了。自从 1.5 版就有，当时我还专门<a href="http://blog.istef.info/2005/07/27/2-wordpress-hacks/">写文章</a>说明了解决办法。WordPress 升级到了 2.0.2，这个 Bug 却依然存在，虽然修改方式略有变化，但原理都是相同的，就是没有正确处理 PHP 函数 htmlentities() 的编码问题。</p>
<p>问题现象：撰写文章时，用书写界面下方的上传文件对话框可以上传附件。当在<strong>标题</strong>处键入<strong>非拉丁字符（多字节字符）</strong>时，上传成功后附件的描述为乱码。</p>
<p>解决方案：1. 打开 <wp-dir>/wp-includes/functions.php，找到函数 function htmlentities2($myHTML)，将此函数按如下替换：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">&lt;?php</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">htmlentities2</span><span style="color: Olive;">(</span><span style="color: #00008b;">$myHTML</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">preg_replace</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">/&amp;amp;([A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&amp;$1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: Blue;">htmlentities</span><span style="color: Olive;">(</span><span style="color: #00008b;">$myHTML</span><span style="color: Gray;">,</span><span style="color: Blue;">ENT_QUOTES</span><span style="color: Gray;">,</span><span style="color: Blue;">get_settings</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">blog_charset</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p>2. 打开 <wp-dir>/wp-admin/inline-uploading.php，搜索 <strong>htmlentities(</strong>，应该有两处，分别位于 237 行和 257 行，按如下更改：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">&lt;?php</span></li>
<li><span style="color: #ffa500;">// 237 行，原始代码为：</span></li>
<li><span style="color: #00008b;">$title</span><span style="color: Gray;"> = </span><span style="color: Blue;">htmlentities</span><span style="color: Olive;">(</span><span style="color: #00008b;">$image</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">post_title</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">, </span><span style="color: Blue;">ENT_QUOTES</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #ffa500;">// 修改为</span></li>
<li><span style="color: #00008b;">$title</span><span style="color: Gray;"> = </span><span style="color: Blue;">htmlentities</span><span style="color: Olive;">(</span><span style="color: #00008b;">$image</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">post_title</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">, </span><span style="color: Blue;">ENT_QUOTES</span><span style="color: Gray;">,</span><span style="color: Blue;">get_settings</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">blog_charset</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">// 257 行，原始代码为：</span></li>
<li><span style="color: #00008b;">$title</span><span style="color: Gray;"> = </span><span style="color: Blue;">htmlentities</span><span style="color: Olive;">(</span><span style="color: #00008b;">$attachment</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">post_title</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">, </span><span style="color: Blue;">ENT_QUOTES</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: #ffa500;">// 修改为</span></li>
<li><span style="color: #00008b;">$title</span><span style="color: Gray;"> = </span><span style="color: Blue;">htmlentities</span><span style="color: Olive;">(</span><span style="color: #00008b;">$attachment</span><span style="color: Olive;">[</span><span style="color: #8b0000;">'</span><span style="color: Red;">post_title</span><span style="color: #8b0000;">'</span><span style="color: Olive;">]</span><span style="color: Gray;">, </span><span style="color: Blue;">ENT_QUOTES</span><span style="color: Gray;">,</span><span style="color: Blue;">get_settings</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">blog_charset</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p>以上代码测试通过 (WordPress 2.0.2) ，并已经应用于本站。
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2006%2F04%2F26%2Fwordpress-202-title-encoding-error-of-inline-upload-bug-and-solution%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2006%2F04%2F26%2Fwordpress-202-title-encoding-error-of-inline-upload-bug-and-solution%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2006/04/26/wordpress-202-title-encoding-error-of-inline-upload-bug-and-solution/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>强化 WordPress 2.0.1 文件上传功能</title>
		<link>http://blog.istef.info/2006/02/10/enhance-wordpress-201-upload-functions/</link>
		<comments>http://blog.istef.info/2006/02/10/enhance-wordpress-201-upload-functions/#comments</comments>
		<pubDate>Fri, 10 Feb 2006 03:39:33 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[upload]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.istef.info/2006/02/10/enhance-wordpress-201-upload-functions/</guid>
		<description><![CDATA[WordPress 2.0.1 相对于 2.0 的一个重要修正就是“可以指定文件上传路径”。但这一功能相对 WordPress 1.5.x 版本还不够完善。在 WP 1.5 中，我们可以设定上传文件存放的绝对路径，同时可以设定访问上传文件的 URL 前缀。通过这个功能，我们可以将文件上传到其它路径下，从而借助服务器设置轻松实现一些功能（例如防盗链）；而对于访问量巨大的网站，像图片、附件这样的静态内容可以通过单独使用一个静态编译的 apache，减小服务器负担，提高吞吐量。 在 WP 2.0.1 中，这个功能被弱化了。只能设定文件存放的相对路径，而且无法设定 URL 前缀。对于从 1.5.x 版一直使用这个功能的网站（例如本站）来说，移植是十分麻烦的。于是我通过简单修改 WordPress，为 WordPress 2.0.1 加上了这个功能。（懒得自己改的朋友可以在这里下载改好的文件） 在 wp-includes/functions-post.php 文件中，搜索 function wp_upload_dir()，按照如下修改这个函数： &#60;?php // Returns an array containing the current upload directory's path and url, or an error message. function&#160;wp_upload_dir() { &#160; &#160; $siteurl = get_settings('siteurl'); [...]]]></description>
			<content:encoded><![CDATA[<p><img id="image298" src="http://blog.istef.info/wp-content/uploads/2006/02/2006-2-10-2.jpg" alt="WordPress 2.0.1 upload function" style="float:left" />WordPress 2.0.1 相对于 2.0 的一个<a href="http://wordpress.org/development/2006/01/201-release/">重要修正</a>就是“可以指定文件上传路径”。但这一功能相对 WordPress 1.5.x 版本还不够完善。在 WP 1.5 中，我们可以设定上传文件存放的绝对路径，同时可以设定访问上传文件的 URL 前缀。通过这个功能，我们可以将文件上传到其它路径下，从而借助服务器设置轻松实现一些功能（例如防盗链）；而对于访问量巨大的网站，像图片、附件这样的静态内容可以通过单独使用一个静态编译的 apache，减小服务器负担，提高吞吐量。</p>
<p>在 WP 2.0.1 中，这个功能被弱化了。只能设定文件存放的相对路径，而且无法设定 URL 前缀。对于从 1.5.x 版一直使用这个功能的网站（例如本站）来说，移植是十分麻烦的。于是我通过简单修改 WordPress，为 WordPress 2.0.1 加上了这个功能。（懒得自己改的朋友可以在这里下载<a href="http://statics.istef.info/wp/wp2.0.1-upload-fix.rar">改好的文件</a>）<br />
<span id="more-299"></span><br />
在 wp-includes/functions-post.php 文件中，搜索 <code>function wp_upload_dir()</code>，按照如下修改这个函数：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">&lt;?php</span></li>
<li><span style="color: #ffa500;">// Returns an array containing the current upload directory's path and url, or an error message.</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">wp_upload_dir</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$siteurl</span><span style="color: Gray;"> = </span><span style="color: Blue;">get_settings</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">siteurl</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//prepend ABSPATH to $dir and $siteurl to $url if they're not already there</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$path</span><span style="color: Gray;"> = </span><span style="color: Blue;">str_replace</span><span style="color: Olive;">(</span><span style="color: Blue;">ABSPATH</span><span style="color: Gray;">, </span><span style="color: #8b0000;">''</span><span style="color: Gray;">, </span><span style="color: Blue;">trim</span><span style="color: Olive;">(</span><span style="color: Blue;">get_settings</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">upload_path</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">substr</span><span style="color: Olive;">(</span><span style="color: #00008b;">$path</span><span style="color: Gray;">,</span><span style="color: Maroon;">0</span><span style="color: Gray;">,</span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;"> == </span><span style="color: #8b0000;">'</span><span style="color: Red;">/</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// an absolute path</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$dir</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$path</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$url</span><span style="color: Gray;"> = </span><span style="color: Blue;">trailingslashit</span><span style="color: Olive;">(</span><span style="color: Blue;">get_settings</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">fileupload_url</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">else</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$dir</span><span style="color: Gray;"> = </span><span style="color: Blue;">ABSPATH</span><span style="color: Gray;"> . </span><span style="color: #00008b;">$path</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$url</span><span style="color: Gray;"> = </span><span style="color: Blue;">trailingslashit</span><span style="color: Olive;">(</span><span style="color: #00008b;">$siteurl</span><span style="color: Olive;">)</span><span style="color: Gray;"> . </span><span style="color: #00008b;">$path</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$dir</span><span style="color: Gray;"> == </span><span style="color: Blue;">ABSPATH</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;"> </span><span style="color: #ffa500;">//the option was empty</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$dir</span><span style="color: Gray;"> = </span><span style="color: Blue;">ABSPATH</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">'</span><span style="color: Red;">wp-content/uploads</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">defined</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">UPLOADS</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$dir</span><span style="color: Gray;"> = </span><span style="color: Blue;">ABSPATH</span><span style="color: Gray;"> . </span><span style="color: Blue;">UPLOADS</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$url</span><span style="color: Gray;"> = </span><span style="color: Blue;">trailingslashit</span><span style="color: Olive;">(</span><span style="color: #00008b;">$siteurl</span><span style="color: Olive;">)</span><span style="color: Gray;"> . </span><span style="color: Blue;">UPLOADS</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Blue;">get_settings</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">uploads_use_yearmonth_folders</span><span style="color: #8b0000;">'</span><span style="color: Olive;">))</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// Generate the yearly and monthly dirs</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$time</span><span style="color: Gray;"> = </span><span style="color: Blue;">current_time</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">'</span><span style="color: Red;">mysql</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$y</span><span style="color: Gray;"> = </span><span style="color: Blue;">substr</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$time</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">4</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$m</span><span style="color: Gray;"> = </span><span style="color: Blue;">substr</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">$time</span><span style="color: Gray;">, </span><span style="color: Maroon;">5</span><span style="color: Gray;">, </span><span style="color: Maroon;">2</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$dir</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$dir</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">/</span><span style="color: #00008b;">$y</span><span style="color: Red;">/</span><span style="color: #00008b;">$m</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$url</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$url</span><span style="color: Gray;"> . </span><span style="color: #8b0000;">&quot;</span><span style="color: #00008b;">$y</span><span style="color: Red;">/</span><span style="color: #00008b;">$m</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">// Make sure we have an uploads dir</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> ! </span><span style="color: Blue;">wp_mkdir_p</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #00008b;">$dir</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$message</span><span style="color: Gray;"> = </span><span style="color: Blue;">sprintf</span><span style="color: Olive;">(</span><span style="color: Blue;">__</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">Unable to create directory %s. Is its parent directory writable by the server?</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: #00008b;">$dir</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">error</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: #00008b;">$message</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$uploads</span><span style="color: Gray;"> = </span><span style="color: Green;">array</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">path</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: #00008b;">$dir</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">url</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: #00008b;">$url</span><span style="color: Gray;">, </span><span style="color: #8b0000;">'</span><span style="color: Red;">error</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> =&gt; </span><span style="color: Green;">false</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">apply_filters</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">upload_dir</span><span style="color: #8b0000;">'</span><span style="color: Gray;">, </span><span style="color: #00008b;">$uploads</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p>再打开 wp-admin/options-misc.php，改成如下内容：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;?</span><span style="color: Green;">php</span></li>
<li><span style="color: #00008b;">require_once</span><span style="color: Gray;">('</span><span style="color: #00008b;">admin</span><span style="color: Gray;">.</span><span style="color: #00008b;">php</span><span style="color: Gray;">');</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">$</span><span style="color: #00008b;">title</span><span style="color: Gray;"> = </span><span style="color: #00008b;">__</span><span style="color: Gray;">('</span><span style="color: #00008b;">Miscellaneous</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">Options</span><span style="color: Gray;">');</span></li>
<li><span style="color: Gray;">$</span><span style="color: #00008b;">parent_file</span><span style="color: Gray;"> = '</span><span style="color: #00008b;">options-general</span><span style="color: Gray;">.</span><span style="color: #00008b;">php</span><span style="color: Gray;">';</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #00008b;">include</span><span style="color: Gray;">('</span><span style="color: #00008b;">admin-header</span><span style="color: Gray;">.</span><span style="color: #00008b;">php</span><span style="color: Gray;">');</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">?&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">div</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">wrap</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">h2</span><span style="color: Olive;">&gt;&lt;?</span><span style="color: Green;">php</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">_e</span><span style="color: Gray;">('</span><span style="color: #00008b;">Miscellaneous</span><span style="color: Gray;"> </span><span style="color: #00008b;">Options</span><span style="color: Gray;">') </span><span style="color: Olive;">?&gt;&lt;/</span><span style="color: Green;">h2</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">form</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">method</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">post</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">action</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">options.php</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">fieldset</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">options</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">legend</span><span style="color: Olive;">&gt;&lt;?</span><span style="color: Green;">php</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">_e</span><span style="color: Gray;">('</span><span style="color: #00008b;">Uploading</span><span style="color: Gray;">'); </span><span style="color: Olive;">?&gt;&lt;/</span><span style="color: Green;">legend</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">table</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">editform optiontable</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">tr</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">valign</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">top</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">th</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">scope</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">row</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;?</span><span style="color: Green;">php</span><span style="color: Gray;"> </span><span style="color: #00008b;">_e</span><span style="color: Gray;">('</span><span style="color: #00008b;">Store</span><span style="color: Gray;"> </span><span style="color: #00008b;">uploads</span><span style="color: Gray;"> </span><span style="color: #00008b;">in</span><span style="color: Gray;"> </span><span style="color: #00008b;">this</span><span style="color: Gray;"> </span><span style="color: #00008b;">folder</span><span style="color: Gray;">'); </span><span style="color: Olive;">?&gt;</span><span style="color: Gray;">:</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">th</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">upload_path</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">upload_path</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">code</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&lt;?php echo get_settings('upload_path'); ?&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">size</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">40</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">br</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;?</span><span style="color: Green;">php</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">_e</span><span style="color: Gray;">('</span><span style="color: #00008b;">Default</span><span style="color: Gray;"> </span><span style="color: #00008b;">is</span><span style="color: Gray;"> &lt;</span><span style="color: Green;">code</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">wp-content/uploads</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">code</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">'); ?&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">tr</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">tr</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">valign</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">top</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">th</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">scope</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">row</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;?</span><span style="color: Green;">php</span><span style="color: Gray;"> </span><span style="color: #00008b;">_e</span><span style="color: Gray;">('</span><span style="color: #00008b;">Uploads</span><span style="color: Gray;"> </span><span style="color: #00008b;">URL</span><span style="color: Gray;">'); </span><span style="color: Olive;">?&gt;</span><span style="color: Gray;">:</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">th</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">fileupload_url</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">text</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">fileupload_url</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">code</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&lt;?php echo get_settings('fileupload_url'); ?&gt;</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">size</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">40</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">tr</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">tr</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">label</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">for</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">uploads_use_yearmonth_folders</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">uploads_use_yearmonth_folders</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">checkbox</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">uploads_use_yearmonth_folders</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> &lt;?</span><span style="color: Green;">php</span><span style="color: Gray;"> </span><span style="color: #00008b;">checked</span><span style="color: Gray;">('</span><span style="color: #00008b;">1</span><span style="color: Gray;">', </span><span style="color: #00008b;">get_settings</span><span style="color: Gray;">('</span><span style="color: #00008b;">uploads_use_yearmonth_folders</span><span style="color: Gray;">')); </span><span style="color: Olive;">?&gt;</span><span style="color: Gray;"> /&gt;</span></li>
<li><span style="color: Olive;">&lt;?</span><span style="color: Green;">php</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">_e</span><span style="color: Gray;">('</span><span style="color: #00008b;">Organize</span><span style="color: Gray;"> </span><span style="color: #00008b;">my</span><span style="color: Gray;"> </span><span style="color: #00008b;">uploads</span><span style="color: Gray;"> </span><span style="color: #00008b;">into</span><span style="color: Gray;"> </span><span style="color: #00008b;">month-</span><span style="color: Gray;"> </span><span style="color: #00008b;">and</span><span style="color: Gray;"> </span><span style="color: #00008b;">year-based</span><span style="color: Gray;"> </span><span style="color: #00008b;">folders</span><span style="color: Gray;">'); </span><span style="color: Olive;">?&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">label</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">td</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">tr</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">table</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">fieldset</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">p</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">use_linksupdate</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">checkbox</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">id</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">use_linksupdate</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> &lt;?</span><span style="color: Green;">php</span><span style="color: Gray;"> </span><span style="color: #00008b;">checked</span><span style="color: Gray;">('</span><span style="color: #00008b;">1</span><span style="color: Gray;">', </span><span style="color: #00008b;">get_settings</span><span style="color: Gray;">('</span><span style="color: #00008b;">use_linksupdate</span><span style="color: Gray;">')); </span><span style="color: Olive;">?&gt;</span><span style="color: Gray;"> /&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">label</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">for</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">use_linksupdate</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;&lt;?</span><span style="color: Green;">php</span><span style="color: Gray;"> </span><span style="color: #00008b;">_e</span><span style="color: Gray;">('</span><span style="color: #00008b;">Track</span><span style="color: Gray;"> </span><span style="color: #00008b;">Links</span><span style="color: Gray;">&amp;#</span><span style="color: #00008b;">8217</span><span style="color: Gray;">; </span><span style="color: #00008b;">Update</span><span style="color: Gray;"> </span><span style="color: #00008b;">Times</span><span style="color: Gray;">') </span><span style="color: Olive;">?&gt;&lt;/</span><span style="color: Green;">label</span><span style="color: Olive;">&gt;&lt;/</span><span style="color: Green;">p</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">p</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">label</span><span style="color: Olive;">&gt;&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">checkbox</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">hack_file</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> &lt;?</span><span style="color: Green;">php</span><span style="color: Gray;"> </span><span style="color: #00008b;">checked</span><span style="color: Gray;">('</span><span style="color: #00008b;">1</span><span style="color: Gray;">', </span><span style="color: #00008b;">get_settings</span><span style="color: Gray;">('</span><span style="color: #00008b;">hack_file</span><span style="color: Gray;">')); </span><span style="color: Olive;">?&gt;</span><span style="color: Gray;"> /&gt; </span><span style="color: Olive;">&lt;?</span><span style="color: Green;">php</span><span style="color: Gray;"> </span><span style="color: #00008b;">_e</span><span style="color: Gray;">('</span><span style="color: #00008b;">Use</span><span style="color: Gray;"> </span><span style="color: #00008b;">legacy</span><span style="color: Gray;"> &lt;</span><span style="color: Green;">code</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">my-hacks.php</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">code</span><span style="color: Olive;">&gt;</span><span style="color: Gray;"> file support') ?&gt;</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">label</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">p</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">p</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">class</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">submit</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">hidden</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">action</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">update</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">hidden</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">page_options</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">hack_file,use_linksupdate,uploads_use_yearmonth_folders,upload_path,fileupload_url</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">input</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">type</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">submit</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">name</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Submit</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: #00008b;">value</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&lt;?php _e('Update Options') ?&gt; </span><span style="color: Navy;">&amp;raquo;</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">/&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">p</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">form</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;/</span><span style="color: Green;">div</span><span style="color: Olive;">&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;?</span><span style="color: Green;">php</span><span style="color: Gray;">&nbsp;</span><span style="color: #00008b;">include</span><span style="color: Gray;">('./</span><span style="color: Green;">admin-footer</span><span style="color: Gray;">.</span><span style="color: #00008b;">php</span><span style="color: Gray;">'); </span><span style="color: Olive;">?&gt;</span></li></ol></div>
<p>进入管理后台，选项->杂项 即可进行设置。以上代码在本站测试正常并已经应用。
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2006%2F02%2F10%2Fenhance-wordpress-201-upload-functions%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2006%2F02%2F10%2Fenhance-wordpress-201-upload-functions%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2006/02/10/enhance-wordpress-201-upload-functions/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>WordPress 技巧两则</title>
		<link>http://blog.istef.info/2005/07/27/2-wordpress-hacks/</link>
		<comments>http://blog.istef.info/2005/07/27/2-wordpress-hacks/#comments</comments>
		<pubDate>Wed, 27 Jul 2005 04:23:23 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Experiences]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[htmlentities]]></category>
		<category><![CDATA[UTF 8]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.istef.info/2005/07/27/2-wordpress-hacks/</guid>
		<description><![CDATA[用了 WP 快半个月，没事就研究一下它的代码，对我现在用的 wp 也进行了少量 hack，个人认为比较实用的有下面两个，拿出来和大家分享一下。 解决后台进入速度慢的问题：使用过程中发现 wp 进入后台的速度有点慢，分析代码发现是那个 Dashboard 惹的祸。在每次进入后台的时候，wp 都会利用 Magpierss 取三个 feeds 并汇聚成 dashboard 上的新闻。这个原理很类似于 lilina。反正我是不看这些东西的，我估计大多数人也不看，所以盘算着把这个 Dashboard 废了。打开 wp_admin/index.php 找 $rss = @fetch_rss，注释掉这一行。一共应该有三处，全注释掉即可。再打开管理后台试试，是不是一下子就进去了:smile: 上传图片的中文注释为乱码。找到 wp_includes/functions.php ，有这样一个函数 htmlentities2。看一下主要是改进 PHP 原有的 htmlentities 函数避免将诸如 &#38;amp; 替换为 &#38;amp;amp; 这样二次转换的问题。但老外没考虑到非拉丁语系国家的问题。查 PHP 手册可知，PHP 4.3.0 以上版本的 htmlentities 添加了第三个参数，可以支持一定种类的编码，其中就包括普遍使用的 utf-8。对此函数进行重写，目前使用效果比较好，代码如下： &#60;?php function&#160;htmlentities2($myHTML) { &#160; &#160; return&#160;preg_replace(&#34;/&#38;amp;([A-Za-z]{0,4}\w{2,3};&#124;#[0-9]{2,3};)/&#34;,&#34;&#38;$1&#34;,htmlentities($myHTML,ENT_QUOTES,get_settings('blog_charset'))); } ?&#62; UPDATE:在 WordPress [...]]]></description>
			<content:encoded><![CDATA[<p>用了 WP 快半个月，没事就研究一下它的代码，对我现在用的 wp 也进行了少量 hack，个人认为比较实用的有下面两个，拿出来和大家分享一下。<br />
解决后台进入速度慢的问题：使用过程中发现 wp 进入后台的速度有点慢，分析代码发现是那个 Dashboard 惹的祸。在每次进入后台的时候，wp 都会利用 Magpierss 取三个 feeds 并汇聚成 dashboard 上的新闻。这个原理很类似于 lilina。反正我是不看这些东西的，我估计大多数人也不看，所以盘算着把这个 Dashboard 废了。打开 wp_admin/index.php 找 $rss = @fetch_rss，注释掉这一行。一共应该有三处，全注释掉即可。再打开管理后台试试，是不是一下子就进去了:smile:<br />
上传图片的中文注释为乱码。找到 wp_includes/functions.php ，有这样一个函数 htmlentities2。看一下主要是改进 PHP 原有的 htmlentities 函数避免将诸如 &amp;amp; 替换为 &amp;amp;amp; 这样二次转换的问题。但老外没考虑到非拉丁语系国家的问题。查 PHP 手册可知，PHP 4.3.0 以上版本的 htmlentities 添加了第三个参数，可以支持一定种类的编码，其中就包括普遍使用的 utf-8。对此函数进行重写，目前使用效果比较好，代码如下：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Blue;">&lt;?php</span></li>
<li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">htmlentities2</span><span style="color: Olive;">(</span><span style="color: #00008b;">$myHTML</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">preg_replace</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">/&amp;amp;([A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">&amp;$1</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">,</span><span style="color: Blue;">htmlentities</span><span style="color: Olive;">(</span><span style="color: #00008b;">$myHTML</span><span style="color: Gray;">,</span><span style="color: Blue;">ENT_QUOTES</span><span style="color: Gray;">,</span><span style="color: Blue;">get_settings</span><span style="color: Olive;">(</span><span style="color: #8b0000;">'</span><span style="color: Red;">blog_charset</span><span style="color: #8b0000;">'</span><span style="color: Olive;">)))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p><strong style="color:red">UPDATE:</strong>在 WordPress 2.0.2 版本中，关于上传图片标题乱码的问题，请按照<a href="http://blog.istef.info/2006/04/26/wordpress-202-title-encoding-error-of-inline-upload-bug-and-solution/">这篇文章</a>的方案解决。
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2005%2F07%2F27%2F2-wordpress-hacks%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2005%2F07%2F27%2F2-wordpress-hacks%2F&amp;style=compact&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.istef.info/2005/07/27/2-wordpress-hacks/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached
Page Caching using memcached
Database Caching 1/31 queries in 0.018 seconds using memcached
Object Caching 917/989 objects using memcached

Served from: blog.istef.info @ 2012-02-13 09:35:51 -->
