<?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; bug</title>
	<atom:link href="http://blog.istef.info/tag/bug/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>WP Turbo 再升级，修正了一个 t &#8230;</title>
		<link>http://blog.istef.info/2008/07/14/tweet-28/</link>
		<comments>http://blog.istef.info/2008/07/14/tweet-28/#comments</comments>
		<pubDate>Mon, 14 Jul 2008 15:55:31 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Tweets]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[wp-turbo]]></category>

		<guid isPermaLink="false">http://blog.istef.info/2008/07/14/tweet-28/</guid>
		<description><![CDATA[WP Turbo 再升级，修正了一个 turbo.min.js 中一个逻辑错误，建议已经在用的朋友升级一下。另外，下载链接已经恢复了，今天早上发现问题后就扯下了下载链接，没想到忙到晚上才有空恢复它，实在不好意思。 btw: 这几天我可能会持续不断更新这个插件，所以，如果你跟进的有点烦的话，那就去骂 WordPress.org 好了，谁让他们死活不受理我的插件 hosting 申请呢，呵呵。]]></description>
			<content:encoded><![CDATA[<p>WP Turbo 再升级，修正了一个 turbo.min.js 中一个逻辑错误，建议已经在用的朋友升级一下。另外，下载链接已经恢复了，今天早上发现问题后就扯下了下载链接，没想到忙到晚上才有空恢复它，实在不好意思。</p>
<p>btw: 这几天我可能会持续不断更新这个插件，所以，如果你跟进的有点烦的话，那就去骂 WordPress.org 好了，谁让他们死活不受理我的插件 hosting 申请呢，呵呵。
<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fblog.istef.info%2F2008%2F07%2F14%2Ftweet-28%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2008%2F07%2F14%2Ftweet-28%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/2008/07/14/tweet-28/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>WordPress 的 XSS 漏洞和暂时解决方案</title>
		<link>http://blog.istef.info/2007/03/22/xss-bug-of-wordpress-and-solutions/</link>
		<comments>http://blog.istef.info/2007/03/22/xss-bug-of-wordpress-and-solutions/#comments</comments>
		<pubDate>Thu, 22 Mar 2007 11:27:53 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xss]]></category>

		<guid isPermaLink="false">http://blog.istef.info/2007/03/22/xss-bug-of-wordpress-and-solutions/</guid>
		<description><![CDATA[Mgccl 同志给我们 CBN 的每位成员邮箱中发了封邮件，内容都差不多，留下了一个链接，向博客的主人展示了一下 WordPress 的 XSS 漏洞以及简易攻击效果。这封邮件没什么恶意，只是善意的提醒，在这里感谢一下 Mgccl。由于我和 Mgccl 之前认识，所以除了我的邮件，似乎其它人的邮件中它都留下了自己网站的链接，不错的推广方法啊。好了，这里我也推荐一下，如果您的英文水平不错的话，可以去看看 Mgccl 的技术型小站 WebDevLogs，会有收获的。 言归正传，让我们看一下这个漏洞。关于 XSS 漏洞最近还是比较火爆的，因为最初爆出这个漏洞问题的是大名鼎鼎的 Google。利用这个漏洞，黑客可以窃取网站访客的 Cookies 信息。有了 Cookies，很多事情都可以做了吧 对于 WordPress 来说，在 SecurityFocus 对于这个漏洞有比较详细的描述。问题主要出现在 WordPress 中 wp_title 这个函数没有对 URL 中的 year 进行良好的过滤。从描述中我们可以看到，除了最新的 SVN 版本外，所有的 WordPress 版本都在受这个漏洞的困扰。虽然这个漏洞被标记为 Less Critical，不过利用这个漏洞攻击还是非常简单的，所以我个人建议还是应该对这个漏洞进行一下修补。 说说解决方法。目前还没有很好的官方解决方法，SecurityFocus 给出的建议是升级到最新的 SVN 版本，因为新版的 WordPress SVN 已经修补了这个漏洞。但是我详细大多数人不是很喜欢用 SVN 版本，甚至很多人也不会用 SVN 去 co 新版本。下面我给出一个比较简单，但不完美的暂时解决方案，临时修补一下这个漏洞。等下一个 WP 版本官方便会修补这个漏洞。 [...]]]></description>
			<content:encoded><![CDATA[<p>Mgccl 同志给我们 <a href="http://chinabloggernetwork.com">CBN</a> 的每位成员邮箱中发了封邮件，内容都差不多，留下了一个链接，向博客的主人展示了一下 WordPress 的 XSS 漏洞以及简易攻击效果。这封邮件没什么恶意，只是善意的提醒，在这里感谢一下 Mgccl。由于我和 Mgccl 之前认识，所以除了我的邮件，似乎其它人的邮件中它都留下了自己网站的链接，不错的推广方法啊。好了，这里我也推荐一下，如果您的英文水平不错的话，可以去看看 Mgccl 的技术型小站 <a href="http://www.webdevlogs.com/">WebDevLogs</a>，会有收获的。</p>
<p>言归正传，让我们看一下这个漏洞。关于 XSS 漏洞最近还是比较火爆的，因为最初爆出这个漏洞问题的是大名鼎鼎的 Google。利用这个漏洞，黑客可以窃取网站访客的 Cookies 信息。有了 Cookies，很多事情都可以做了吧 <img src='http://blog.istef.info/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  对于 WordPress 来说，在 SecurityFocus 对于这个漏洞有<a href="http://www.securityfocus.com/archive/1/462374/30/0/threaded">比较详细的描述</a>。问题主要出现在 WordPress 中 wp_title 这个函数没有对 URL 中的 year 进行良好的过滤。从描述中我们可以看到，除了最新的 SVN 版本外，所有的 WordPress 版本都在受这个漏洞的困扰。虽然这个漏洞被标记为 Less Critical，不过利用这个漏洞攻击还是非常简单的，所以我个人建议还是应该对这个漏洞进行一下修补。</p>
<p>说说解决方法。目前还没有很好的官方解决方法，SecurityFocus 给出的建议是升级到最新的 SVN 版本，因为新版的 WordPress SVN 已经修补了这个漏洞。但是我详细大多数人不是很喜欢用 SVN 版本，甚至很多人也不会用 SVN 去 co 新版本。下面我给出一个<strong>比较简单，但不完美的</strong>暂时解决方案，临时修补一下这个漏洞。等下一个 WP 版本官方便会修补这个漏洞。</p>
<p>其实根据漏洞出现的原理，我们对 WordPress 中 wp-includes/general-template.php 文件 wp_title 函数的 $year 加强过滤即可解决这个注入漏洞。首先找到 function wp_title，然后找到其中的这行（大概在 196 行）：</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;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;"> !</span><span style="color: Green;">empty</span><span style="color: Olive;">(</span><span style="color: #00008b;">$year</span><span style="color: Olive;">))</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: #00008b;">$title</span><span style="color: Gray;">=</span><span style="color: #00008b;">$year</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p>修改为：</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;">if</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Gray;">!</span><span style="color: Green;">empty</span><span style="color: Olive;">(</span><span style="color: #00008b;">$year</span><span style="color: Olive;">)</span><span style="color: Gray;"> &amp;&amp; </span><span style="color: Blue;">is_numeric</span><span style="color: Olive;">(</span><span style="color: #00008b;">$year</span><span style="color: Olive;">))</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: #00008b;">$year</span><span style="color: Gray;"> = </span><span style="color: Blue;">intval</span><span style="color: Olive;">(</span><span style="color: #00008b;">$year</span><span style="color: Olive;">)</span><span style="color: Gray;">;&nbsp; </span><span style="color: #ffa500;">// hack to avoid XSS injection</span></li>
<li><span style="color: #00008b;">$title</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$year</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p>这样基本上就把 $year 过滤干净了，想利用它来进行 XSS 攻击基本不可能了。以上修改是基于 WordPress 2.1.2 的，其它版本的 WP 应该也类似。</p>
<p>对参数没有进行充分过滤是平时写程序经常出现的问题，虽然尽力避免但也难以保证不出现。刚看了一下 SVN 中的 WordPress 新版本，它使用更严谨的过滤方法，而且极大的减少了全局变量的使用。少用全局变量对于提高程序的安全性效果是非常明显的，我们平时写程序时也应该注意一下。
<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%2F03%2F22%2Fxss-bug-of-wordpress-and-solutions%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2007%2F03%2F22%2Fxss-bug-of-wordpress-and-solutions%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/03/22/xss-bug-of-wordpress-and-solutions/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>WordPress 2.0.6 Feedburner Bug 及修复</title>
		<link>http://blog.istef.info/2007/01/07/wordpress-206-feedburner-bug-and-fix/</link>
		<comments>http://blog.istef.info/2007/01/07/wordpress-206-feedburner-bug-and-fix/#comments</comments>
		<pubDate>Sun, 07 Jan 2007 05:15:47 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Experiences]]></category>
		<category><![CDATA[this site]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[feedburner]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.istef.info/2007/01/07/wordpress-206-feedburner-bug-and-fix/</guid>
		<description><![CDATA[昨天 WordPress 放出了最新的 2.0.6 版，很多朋友升级后发现 FeedBurner 的 FeedMedic 中会报告错误，我也遇到了类似的问题，刚刚在 Digg 上找到了解决方法，原来是 WordPress 2.0.6 中的一个 Bug。原文在这里，为了方便中文读者，我简短的翻译一下解决方法。 方案一：修改代码 打开 /wp-includes/functions.php 并找到下面这样的代码： &#60;?php &#160; &#160; &#160; if&#160;( substr(php_sapi_name(), 0, 3) == 'cgi' ) &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; @header(&#34;HTTP/1.1 $header&#160;$text&#34;); &#160; &#160; &#160; &#160; &#160; &#160; &#160; else &#160; &#160; &#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p><!--SPONSOR=[PAGEFLAKES]--><img id="image631" src="http://blog.istef.info/wp-content/uploads/2007/01/2007-1-7.jpg" alt="WordPress 2.0.6" style="float:left" />昨天 <a href="http://www.wordpress.org">WordPress</a> 放出了最新的 <a href="http://www.wordpress.org/download">2.0.6</a> 版，很多朋友升级后发现 FeedBurner 的 FeedMedic 中会报告错误，我也遇到了类似的问题，刚刚在 Digg 上找到了解决方法，原来是 WordPress 2.0.6 中的一个 Bug。原文在<a href="http://neosmart.net/blog/archives/317">这里</a>，为了方便中文读者，我简短的翻译一下解决方法。</p>
<p><strong>方案一：修改代码</strong><br />
打开 /wp-includes/functions.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: Blue;">&lt;?php</span></li>
<li><span style="color: Gray;">&nbsp; &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;">substr</span><span style="color: Olive;">(</span><span style="color: Blue;">php_sapi_name</span><span style="color: Olive;">()</span><span style="color: Gray;">, </span><span style="color: Maroon;">0</span><span style="color: Gray;">, </span><span style="color: Maroon;">3</span><span style="color: Olive;">)</span><span style="color: Gray;"> == </span><span style="color: #8b0000;">'</span><span style="color: Red;">cgi</span><span style="color: #8b0000;">'</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @</span><span style="color: Blue;">header</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">HTTP/1.1 </span><span style="color: #00008b;">$header</span><span style="color: Red;">&nbsp;</span><span style="color: #00008b;">$text</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: Green;">else</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @</span><span style="color: Blue;">header</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">Status: </span><span style="color: #00008b;">$header</span><span style="color: Red;">&nbsp;</span><span style="color: #00008b;">$text</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; }</span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p>修改为：</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: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//if ( substr(php_sapi_name(), 0, 3) == 'cgi' )</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @</span><span style="color: Blue;">header</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">HTTP/1.1 </span><span style="color: #00008b;">$header</span><span style="color: Red;">&nbsp;</span><span style="color: #00008b;">$text</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//&nbsp; &nbsp; &nbsp; &nbsp; else</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @header(&quot;Status: $header $text&quot;);</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p>这样就可以了。</p>
<p>方案二：创建一个文件 feedburner.php 读取 Feed 的内容给 Feedburner。文件内容如下：</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: Gray;">&nbsp; &nbsp; &nbsp; &lt;?</span><span style="color: Blue;">php</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$uri</span><span style="color: Gray;">=</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">http://neosmart.net/blog/feed/</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">; </span><span style="color: #ffa500;">//Replace this URI with the URI to *your* feed!!</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$ch</span><span style="color: Gray;"> = </span><span style="color: Blue;">curl_init</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">curl_setopt</span><span style="color: Olive;">(</span><span style="color: #00008b;">$ch</span><span style="color: Gray;">, </span><span style="color: Blue;">CURLOPT_URL</span><span style="color: Gray;">, </span><span style="color: #00008b;">$uri</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">curl_setopt</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: #00008b;">$ch</span><span style="color: Gray;">, </span><span style="color: Blue;">CURLOPT_RETURNTRANSFER</span><span style="color: Gray;">, </span><span style="color: Maroon;">1</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Green;">echo</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">curl_exec</span><span style="color: Olive;">(</span><span style="color: #00008b;">$ch</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #00008b;">$status</span><span style="color: Gray;"> = </span><span style="color: Blue;">curl_close</span><span style="color: Olive;">(</span><span style="color: #00008b;">$ch</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">?&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">?&gt;</span></li></ol></div>
<p>这个方法好处在于不用修改代码，但缺点也很明显，要求服务器的 PHP 必须支持 libcurl 扩展。</p>
<p>我这个站点用的是第一种方法。另外，升级 2.0.6 是注意数据库字符集设置，以及 wp-mail 函数修正还是需要的，别忘了修改。</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%2F01%2F07%2Fwordpress-206-feedburner-bug-and-fix%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2007%2F01%2F07%2Fwordpress-206-feedburner-bug-and-fix%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/01/07/wordpress-206-feedburner-bug-and-fix/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>WordPress 2.0.5 一处 Bug</title>
		<link>http://blog.istef.info/2006/12/05/wordpress-205-comment-number-bug-fix/</link>
		<comments>http://blog.istef.info/2006/12/05/wordpress-205-comment-number-bug-fix/#comments</comments>
		<pubDate>Mon, 04 Dec 2006 16:04:08 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Experiences]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.istef.info/2006/12/05/wordpress-205-comment-number-bug-fix/</guid>
		<description><![CDATA[最近忙着 Blog 改版，做模版的时候出现了一个奇怪的问题，分析代码后发现原来是 WordPress 的一处小 Bug。这个 Bug 并不严重，不会造成什么安全问题，写一下具体现象和修补方法。 Bug 现象：模版中调用 comment_number() 和 get_comment_number() 函数时，如果指定了 $post_id，则无法返回正确的评论数。 相关代码及解决办法：问题出在 [wp-dir]/wp-includes/comment-functions.php 235行。get_comment_number() 函数使用了数据库查询缓存来提高运行效率，但将 $comment_count_cache[$post_id] 误写为 $comment_count_cache[$id]，导致结果不正常，更正即可。 &#60;?php // $comment_count_cache[$id] = $wpdb-&#62;get_var(&#34;SELECT comment_count FROM $wpdb-&#62;posts WHERE ID = '$post_id'&#34;); &#160; $comment_count_cache[$post_id] = $wpdb-&#62;get_var(&#34;SELECT comment_count FROM $wpdb-&#62;posts WHERE ID = '$post_id'&#34;); ?&#62; 在 WordPress 2.0.5，LAMP 环境下测试通过。 btw: Wii 游戏手把已经可以在电脑上用了，不过看控制鼠标移动都那么费劲，可以遇见预见电脑离被 Wii 手把砸烂已经不远了，呵呵。]]></description>
			<content:encoded><![CDATA[<p>最近忙着 Blog 改版，做模版的时候出现了一个奇怪的问题，分析代码后发现原来是 WordPress 的一处小 Bug。这个 Bug 并不严重，不会造成什么安全问题，写一下具体现象和修补方法。</p>
<p><strong>Bug 现象：</strong>模版中调用 comment_number() 和 get_comment_number() 函数时，如果指定了 $post_id，则无法返回正确的评论数。</p>
<p><strong>相关代码及解决办法：</strong>问题出在 [wp-dir]/wp-includes/comment-functions.php 235行。get_comment_number() 函数使用了数据库查询缓存来提高运行效率，但将 $comment_count_cache[$post_id] 误写为 $comment_count_cache[$id]，导致结果不正常，更正即可。</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;">// $comment_count_cache[$id] = $wpdb-&gt;get_var(&quot;SELECT comment_count FROM $wpdb-&gt;posts WHERE ID = '$post_id'&quot;);</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #00008b;">$comment_count_cache</span><span style="color: Olive;">[</span><span style="color: #00008b;">$post_id</span><span style="color: Olive;">]</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$wpdb</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">get_var</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">SELECT comment_count FROM </span><span style="color: #00008b;">$wpdb</span><span style="color: Red;">-&gt;posts WHERE ID = '</span><span style="color: #00008b;">$post_id</span><span style="color: Red;">'</span><span style="color: #8b0000;">&quot;</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.5，LAMP 环境下测试通过。</p>
<p>btw: <a href="http://www.youtube.com/watch?v=A_ytdW6Ys2A">Wii 游戏手把已经可以在电脑上用了</a>，不过看控制鼠标移动都那么费劲，可以<del datetime="2006-12-05T07:42:06+00:00" title="Thanks to Kevin">遇见</del>预见电脑离被 Wii 手把砸烂已经不远了，呵呵。
<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%2F12%2F05%2Fwordpress-205-comment-number-bug-fix%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2006%2F12%2F05%2Fwordpress-205-comment-number-bug-fix%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/12/05/wordpress-205-comment-number-bug-fix/feed/</wfw:commentRss>
		<slash:comments>3</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 URL Rewrite Bug</title>
		<link>http://blog.istef.info/2006/02/08/wordpress-201-url-rewrite-bug/</link>
		<comments>http://blog.istef.info/2006/02/08/wordpress-201-url-rewrite-bug/#comments</comments>
		<pubDate>Wed, 08 Feb 2006 09:24:23 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.istef.info/2006/02/08/wordpress-201-url-rewrite-bug/</guid>
		<description><![CDATA[WordPress 作为最出色的 PHP 平台 Blog 系统被广泛使用。前几天，WP 发布了 2.0.1 版，号称修复了 114 处 Bugs。我这里也换上了这个版本。虽然我不太了解具体这 114 个 Bugs 都是什么，但今天在 BunnyQ 的提示下确实发现了一个 Bug。 简单描述一下问题。WordPress 有一个功能叫固定链接（或永久链接），就是将 index.php?aaa=bbb&#038;ccc=ddd 这样的链接改写成比较好记或容易被搜索引擎收录的形式。在有 apache_mod_rewrite 的支持下，wp 可以将链接彻底重写为 yourblog/xxx/yyy 这样的形式，而在没有 mod_rewrite 支持下，wp 会利用 PHP 自身的环境变量来模拟重写，生成地址为 yourblog/index.php/xxx/yyy 这样的形式。在 WP 2.0.1 版本中，如果您的 Blog 是后一种情况（即无 mod_rewrite 支持），则会出现问题，当您访问 yourblog/feed 时，会返回 yourblog/comments/feed 的结果。 根据现象，初步可以判断是 rewrite 规则的问题。WordPress 中处理 rewrite 的部分主要在 wp-includes/classes.php 文件中。Class WP_Rewrite [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.wordpress.org/">WordPress</a> 作为最出色的 PHP 平台 Blog 系统被广泛使用。前几天，WP 发布了 2.0.1 版，号称修复了 114 处 Bugs。我这里也换上了这个版本。虽然我不太了解具体这 114 个 Bugs 都是什么，但今天在 <a href="http://www.micy.cn/blog/index.php/archives/208.html">BunnyQ 的提示</a>下确实发现了一个 Bug。</p>
<p>简单描述一下问题。WordPress 有一个功能叫固定链接（或永久链接），就是将 index.php?aaa=bbb&#038;ccc=ddd 这样的链接改写成比较好记或容易被搜索引擎收录的形式。在有 apache_mod_rewrite 的支持下，wp 可以将链接彻底重写为 yourblog/xxx/yyy 这样的形式，而在没有 mod_rewrite 支持下，wp 会利用 PHP 自身的环境变量来模拟重写，生成地址为 yourblog/index.php/xxx/yyy 这样的形式。在 WP 2.0.1 版本中，如果您的 Blog 是后一种情况（即无 mod_rewrite 支持），则会出现问题，当您访问 yourblog/feed 时，会返回 yourblog/comments/feed 的结果。</p>
<p>根据现象，初步可以判断是 rewrite 规则的问题。WordPress 中处理 rewrite 的部分主要在 wp-includes/classes.php 文件中。Class WP_Rewrite 这个类是用来生成 rewrite 规则的，WP类中 parse_request() 函数是用来解析请求的。经过设置断点分析，问题出在生成规则的 WP_Rewrite 类中，在 /(feed|rss2|rss|atom|rdf)/?$ 这样的匹配规则中，在生成请求时都错误的加上了 &#038;withcomment=1 这个条件（另外还有一条类似规则也有这个问题）。但是看来看去也没看出生成规则的函数 rewrite_rules() 和 generate_rewrite_rules() 有什么问题。无奈拿来 WordPress 2.0 的代码对比来看，发现在 2.0.1 版本中数组连接使用了 array_merge 函数，而不是 2.0 中的 +。难道这是问题吗？于是将 1345 行进行如下更改：</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: Gray;">&nbsp; &nbsp; </span><span style="color: #ffa500;">//$this-&gt;rules = array_merge($page_rewrite, $root_rewrite, $comments_rewrite, $search_rewrite, $category_rewrite, $author_rewrite, $date_rewrite, $post_rewrite);&nbsp; &nbsp; &nbsp; &nbsp; //原来的代码</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: #00008b;">$this</span><span style="color: Gray;">-&gt;</span><span style="color: Blue;">rules</span><span style="color: Gray;"> = </span><span style="color: #00008b;">$page_rewrite</span><span style="color: Gray;"> + </span><span style="color: #00008b;">$root_rewrite</span><span style="color: Gray;"> + </span><span style="color: #00008b;">$comments_rewrite</span><span style="color: Gray;"> + </span><span style="color: #00008b;">$search_rewrite</span><span style="color: Gray;"> + </span><span style="color: #00008b;">$category_rewrite</span><span style="color: Gray;"> + </span><span style="color: #00008b;">$author_rewrite</span><span style="color: Gray;"> + </span><span style="color: #00008b;">$date_rewrite</span><span style="color: Gray;"> + </span><span style="color: #00008b;">$post_rewrite</span><span style="color: Gray;">;&nbsp; &nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">//新代码</span></li>
<li><span style="color: Blue;">?&gt;</span></li></ol></div>
<p>测试，竟然生成了正确的 rewrite 条件！查阅 PHP 手册，明明写着只有“字符串键名相同，后一个值才会覆盖前一个值”。可这两组键名绝对不一样呀！看来这不是 WordPress 的 Bug，而是 PHP 的 Bug。我测试用的 PHP 版本为 4.4.1，不知道换上最新的 4.4.2 或 5.1.2 是不是就没问题了。</p>
<p>好了，最后给出解决方案。按照上面代码将 wp-includes/classes.php 1345 行修改，然后用 phpMyAdmin 之类的工具在您的 WordPress 数据库中执行下面的 SQL：</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: Green;">UPDATE</span><span style="color: Gray;"> </span><span style="color: Blue;">wp_options</span><span style="color: Gray;"> </span><span style="color: Green;">SET</span><span style="color: Gray;"> </span><span style="color: Blue;">option_value</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">&quot;&quot;</span><span style="color: Gray;"> </span><span style="color: Green;">WHERE</span><span style="color: Gray;"> </span><span style="color: Blue;">option_name</span><span style="color: Gray;"> = </span><span style="color: #8b0000;">'</span><span style="color: Red;">rewrite_rules</span><span style="color: #8b0000;">'</span><span style="color: Gray;">;</span></li></ol></div>
<p>做好以上两步后访问一下你的 WordPress，让它重新生成重写规则，问题解除。
<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%2F08%2Fwordpress-201-url-rewrite-bug%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2006%2F02%2F08%2Fwordpress-201-url-rewrite-bug%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/08/wordpress-201-url-rewrite-bug/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Hotmail 成功 Live</title>
		<link>http://blog.istef.info/2006/01/01/windows-live-mail-bug/</link>
		<comments>http://blog.istef.info/2006/01/01/windows-live-mail-bug/#comments</comments>
		<pubDate>Sun, 01 Jan 2006 12:24:23 +0000</pubDate>
		<dc:creator>iStef</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[hotmail]]></category>
		<category><![CDATA[live]]></category>

		<guid isPermaLink="false">http://blog.istef.info/2006/01/01/windows-live-mail-bug/</guid>
		<description><![CDATA[半个月前曾试图加入微软 Windows Live Mail 的 Beta 测试，被微软给拒了。今天终于利用 Bug 体验到了 Windows Live Mail。 确实很像 Outlook，但是个人感觉和 Gmail 还有差距。具体体验的方法在这里，自己可以试试，不过注意，一旦变成 Live Mail 可就变不回原来的 Mail 了，到时候用不了别怪我可以变回来的（谢谢过眼指正）。 btw: 用 Firefox 或 Opera 打开变身后的 Live Mail 还是会看到原来 Hotmail 的界面。]]></description>
			<content:encoded><![CDATA[<p style="text-align:center"><a class="imagelink" href="http://static.flickr.com/39/80173468_da8b6aac0a_o.jpg" title="Windows Live Mail"><img id="image258" src="http://blog.istef.info/wp-content/uploads/2006/01/2006-1-1.jpg" alt="Windows Live Mail"  /></a></p>
<p>半个月前曾试图加入微软 Windows Live Mail 的 Beta 测试，被微软给拒了。今天终于利用 Bug 体验到了 Windows Live Mail。 确实很像 Outlook，但是个人感觉和 Gmail 还有差距。<a href="http://cnbeta.com/modules.php?name=News&#038;file=article&#038;sid=9699">具体体验的方法在这里</a>，自己可以试试，<del datetime="2006-01-01T15:24:03+00:00">不过注意，一旦变成 Live Mail 可就变不回原来的 Mail 了，到时候用不了别怪我</del>可以变回来的（谢谢<a href="http://www.iwalkon.net/">过眼</a>指正）。</p>
<p>btw: 用 Firefox 或 Opera 打开变身后的 Live Mail 还是会看到原来 Hotmail 的界面。
<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%2F01%2F01%2Fwindows-live-mail-bug%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fblog.istef.info%2F2006%2F01%2F01%2Fwindows-live-mail-bug%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/01/01/windows-live-mail-bug/feed/</wfw:commentRss>
		<slash:comments>7</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/33 queries in 0.023 seconds using memcached
Object Caching 1051/1125 objects using memcached

Served from: blog.istef.info @ 2012-02-13 08:31:57 -->
