<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.jeeker.net/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" 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/" version="2.0"><channel><atom:link href="http://feed.jeeker.net" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/Jeeker" type="application/rss+xml"></fs:self_link><lastBuildDate>Thu, 09 Apr 2009 15:55:27 GMT</lastBuildDate><title>Jeeker</title><description>Seeking more!</description><image><url>http://www.feedsky.com/feed/Jeeker/sc/gif</url><title>Jeeker</title><link>http://jeeker.net</link></image><link>http://jeeker.net</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Thu, 09 Apr 2009 17:16:51 GMT</pubDate><item><title>WPSeek WordPress内置函数、模板标签搜索工具</title><link>http://item.feedsky.com/~feedsky/Jeeker/~5930691/199343497/4073413/1/item.html</link><content:encoded>&lt;p&gt;&lt;a href=&quot;http://wpseek.com/&quot;&gt;&lt;img src=&quot;http://wpseek.com/logo.gif&quot; alt=&quot;&quot; align=&quot;right&quot; class=&quot;JBorder&quot; /&gt;&lt;/a&gt;　　作为一个优秀的个人博客发布平台，Wordpress提供了大量的内置函数、模板标签等方便开发者进行插件或主题的开发，官方也提供了名为&lt;a href=&quot;http://codex.wordpress.org/&quot;&gt;Codex&lt;/a&gt;的文档库，开发者可以在其中找到详尽的帮助文档。&lt;/p&gt;
&lt;p&gt;　　而这个新的名为&lt;a href=&quot;http://wpseek.com/&quot;&gt;WPSeek&lt;/a&gt;的WordPress内置函数、模板标签搜索工具提供给你不仅仅只是Codex中的相关链接，还有源代码的代码片段、Google中排位在最前的几个搜索结果、官方讨论区的相关讨论等内容，甚至还可以添加你的个人注解以帮助其他用户更好的使用WP，更值得一提的是，如果你搜索的是错误的或不存在的函数，WPSeek还会列出所有相仿的函数列表。&lt;/p&gt;
&lt;p&gt;　　计划中WPSeek在今后还将推出本地化多语言版本、搜索结果RSS输出、搜索范围条件限定等功能。&lt;/p&gt;
&lt;span id=&quot;more-185&quot;&gt;&lt;/span&gt;
&lt;p&gt;　　&lt;span class=&quot;lead&quot;&gt;BTW: &lt;/span&gt;访问WPSeek时你可以在IE或FF右上方搜索栏的下拉菜单里方便的将WPSeek添加为一个新的搜索引擎，又或者如果你跟我一样不喜欢使用搜索栏且是FF的忠实用户，也可以在FF书签的Quick Search目录中添加一个位置为http://wpseek.com/%s/的书签，再给它设置一个易记的关键词如ws，也可以很方便的进行搜索。&lt;/p&gt;</content:encoded><wfw:commentRss>http://jeeker.net/wpseek-wordpress-functions-template-tags-search-engine/feed/</wfw:commentRss><description>　　作为一个优秀的个人博客发布平台，Wordpress提供了大量的内置函数、模板标签等方便开发者进行插件或主题的开发，官方也提供了名为Codex的文档库，开发者可以在其中找到详尽的帮助文档。
　　而这个新的名为WPSeek的WordPress内置函数、模板标签搜索工具提供给你不仅仅只是Codex中的相关链接，还有源代码的代码片段、Google中排位在最前的几个搜索结果、官方讨论区的相关讨论等内容，甚至还可以添加你的个人注解以帮助其他用户更好的使用WP，更值得一提的是，如果你搜索的是错误的或不存在的函数，WPSeek还会列出所有相仿的函数列表。
　　计划中WPSeek在今后还将推出本地化多语言版本、搜索结果RSS输出、搜索范围条件限定等功能。

　　BTW: 访问WPSeek时你可以在IE或FF右上方搜索栏的下拉菜单里方便的将WPSeek添加为一个新的搜索引擎，又或者如果你跟我一样不喜欢使用搜索栏且是FF的忠实用户，也可以在FF书签的Quick Search目录中添加一个位置为http://wpseek.com/%s/的书签，再给它设置一个易记的关键词如ws，也可以很方便的进行搜索。</description><category>搜索</category><category>开发</category><category>工具</category><category>函数</category><category>插件</category><category>主题</category><category>Wordpress</category><category>Webware</category><category>Developer</category><pubDate>Thu, 09 Apr 2009 23:55:27 +0800</pubDate><author>JinnLynn</author><comments>http://jeeker.net/wpseek-wordpress-functions-template-tags-search-engine/#comments</comments><guid isPermaLink="false">http://jeeker.net/77-autosave/</guid><dc:creator>JinnLynn</dc:creator><fs:srclink>http://jeeker.net/wpseek-wordpress-functions-template-tags-search-engine/</fs:srclink><fs:srcfeed>http://jeeker.net/feed/</fs:srcfeed><fs:itemid>feedsky/Jeeker/~5930691/199343497/4073413</fs:itemid></item><item><title>JKit: 部分禁用日志编辑自动保存</title><link>http://item.feedsky.com/~feedsky/Jeeker/~5930691/199343498/4073413/1/item.html</link><content:encoded>&lt;p&gt;　　在Wordpress中，日志版本管理（Post Revisions）和编辑日志时的自动保存都会在数据库中产生新的数据（编辑已发布的内容时），很显然这些数据的用处只是一时的，但却给今后数据库查询增加了无谓的额外开销。&lt;/p&gt;
&lt;p&gt;　　对于日志版本管理，我们在wp-config.php中添加一句&lt;span class=&quot;code php inline&quot; id=&quot;code-syntax&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;define&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'WP_POST_REVISIONS'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/span&gt;即可以轻松的完全禁用此功能，但自动保存就没有这么简单，官方没有提供开关功能，现在网上找到的方法似乎都是通过屏蔽javascript脚本，这种方法虽然可行，但在某些浏览器下可能报错，同时换个角度来看，某些时候自动保存还是有些用处的，完全禁用似乎也不太可取。&lt;/p&gt;
&lt;p&gt;　　下面的代码实现了仅在编辑草稿、发表新日志或页面时启用自动保存，在重新编辑已发表的内容时则不会进行自动保存的操作，避免在数据库中产生无用的数据，方法则是在浏览器提交申请，服务器进行自动保存之前对日志的状态进行判断，如果是草稿或未找到日志ID（即新日志）则进行保存操作，否则直接退出。&lt;/p&gt;
&lt;span id=&quot;more-181&quot;&gt;&lt;/span&gt;
&lt;pre class=&quot;php code&quot; id=&quot;code-syntax&quot;&gt;&lt;span class=&quot;co4&quot;&gt;/**
 * 仅在编辑草稿、发表新日志或页面时启用自动保存。
 * 防止编辑已发表日志页面自动保存时在数据库中产生新的数据
 * 
 * @version 0.1
 * @author JinnLynn
 */&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; JKit_RemoveAutosave&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;defined&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'DOING_AJAX'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$_POST&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'action'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'autosave'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$post_id&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;isset&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$_POST&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'post_ID'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ? &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;int&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$_POST&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'post_ID'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$post_id&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_post&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$post_id&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;post_status&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'draft'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$message&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; __&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'Autosave is disabled.&amp;amp;nbsp;&amp;amp;nbsp;'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$res&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;new&lt;/span&gt; WP_Ajax_Response&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'what'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'autosave'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                                       &lt;span class=&quot;st_h&quot;&gt;'id'&lt;/span&gt;   &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$post&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;ID&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
                                       &lt;span class=&quot;st_h&quot;&gt;'data'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$message&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                               &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$res&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
add_action&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'init'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'JKit_RemoveAutosave'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;　　&lt;span class=&quot;lead&quot;&gt;NOTE:&lt;/span&gt; 同样的，你可以使用&lt;a href=&quot;http://jeeker.net/projects/jkit-builder/&quot;&gt;JKit Builder&lt;/a&gt;生成带此功能的插件。&lt;/p&gt;</content:encoded><wfw:commentRss>http://jeeker.net/jkit-disable-autosave/feed/</wfw:commentRss><description>　　在Wordpress中，日志版本管理（Post Revisions）和编辑日志时的自动保存都会在数据库中产生新的数据（编辑已发布的内容时），很显然这些数据的用处只是一时的，但却给今后数据库查询增加了无谓的额外开销。
　　对于日志版本管理，我们在wp-config.php中添加一句define&amp;#40;'WP_POST_REVISIONS', false&amp;#41;;即可以轻松的完全禁用此功能，但自动保存就没有这么简单，官方没有提供开关功能，现在网上找到的方法似乎都是通过屏蔽javascript脚本，这种方法虽然可行，但在某些浏览器下可能报错，同时换个角度来看，某些时候自动保存还是有些用处的，完全禁用似乎也不太可取。
　　下面的代码实现了仅在编辑草稿、发表新日志或页面时启用自动保存，在重新编辑已发表的内容时则不会进行自动保存的操作，避免在数据库中产生无用的数据，方法则是在浏览器提交申请，服务器进行自动保存之前对日志的状态进行判断，如果是草稿或未找到日志ID（即新日志）则进行保存操作，否则直接退出。

/**
 * 仅在编辑草稿、发表新日志或页面时启用自动保存。
 * 防止编辑已发表日志页面自动保存时在数据库中产生新的数据
 * 
 * @version 0.1
 * @author JinnLynn
 */
function JKit_RemoveAutosave&amp;#40;&amp;#41; &amp;#123;
    if &amp;#40;!defined&amp;#40;'DOING_AJAX'&amp;#41; &amp;#124;&amp;#124; $_POST&amp;#91;'action'&amp;#93; != 'autosave'&amp;#41;
        return;
    $post_id = isset&amp;#40;$_POST&amp;#91;'post_ID'&amp;#93;&amp;#41; ? &amp;#40;int&amp;#41; $_POST&amp;#91;'post_ID'&amp;#93; : 0;
    if &amp;#40;!$post_id&amp;#41;
     [...]</description><category>PHP</category><category>JKit</category><category>Wordpress</category><category>Developer</category><category>自动保存</category><pubDate>Tue, 24 Mar 2009 21:50:23 +0800</pubDate><author>JinnLynn</author><comments>http://jeeker.net/jkit-disable-autosave/#comments</comments><guid isPermaLink="false">http://jeeker.net/?p=181</guid><dc:creator>JinnLynn</dc:creator><fs:srclink>http://jeeker.net/jkit-disable-autosave/</fs:srclink><fs:srcfeed>http://jeeker.net/feed/</fs:srcfeed><fs:itemid>feedsky/Jeeker/~5930691/199343498/4073413</fs:itemid></item><item><title>饭仿</title><link>http://item.feedsky.com/~feedsky/Jeeker/~5930691/199343499/4073413/1/item.html</link><content:encoded>&lt;p&gt;　　最近对PHP框架有点兴趣，花了些时间了解了下&lt;a href=&quot;http://framework.zend.com/&quot;&gt;Zend Framework&lt;/a&gt;，同时秉着理论联系实际精神模仿&lt;a href=&quot;http://jeeker.net/fanfou/&quot;&gt;饭否&lt;/a&gt;写了个“饭仿”（意为饭否仿真， ^_^!!!），目前饭否上有的主要功能基本上都已实现了，当然饭否上我比较推崇的API和多种发表方式没有去实现它，也不是我写饭仿的主要目的，像饭否这类型的应用开发中有点麻烦的也许就是这些了，其它的似乎都还可以。&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3608/3346780800_761abbb3b4_o.jpg&quot; alt=&quot;饭仿&quot; class=&quot;JBorder&quot; /&gt;&lt;/p&gt;
&lt;p&gt;　　Zend Framework确实是一个不错的开发框架，强大的功能组件和MVC的开发模式能极大的提高工作效率缩短开发周期，当然相应的学习成本也有所增加，如果是开发一个比较大中型的应用，这种成本付出是绝对值得的，但如果是一般的小项目，反倒似乎有点得不偿失了。&lt;/p&gt;</content:encoded><wfw:commentRss>http://jeeker.net/fanfou-simulation/feed/</wfw:commentRss><description>　　最近对PHP框架有点兴趣，花了些时间了解了下Zend Framework，同时秉着理论联系实际精神模仿饭否写了个“饭仿”（意为饭否仿真， ^_^!!!），目前饭否上有的主要功能基本上都已实现了，当然饭否上我比较推崇的API和多种发表方式没有去实现它，也不是我写饭仿的主要目的，像饭否这类型的应用开发中有点麻烦的也许就是这些了，其它的似乎都还可以。

　　Zend Framework确实是一个不错的开发框架，强大的功能组件和MVC的开发模式能极大的提高工作效率缩短开发周期，当然相应的学习成本也有所增加，如果是开发一个比较大中型的应用，这种成本付出是绝对值得的，但如果是一般的小项目，反倒似乎有点得不偿失了。</description><category>PHP</category><category>Zend Framework</category><category>饭否</category><category>Developer</category><pubDate>Thu, 19 Mar 2009 20:44:41 +0800</pubDate><author>JinnLynn</author><comments>http://jeeker.net/fanfou-simulation/#comments</comments><guid isPermaLink="false">http://jeeker.net/76-autosave/</guid><dc:creator>JinnLynn</dc:creator><fs:srclink>http://jeeker.net/fanfou-simulation/</fs:srclink><fs:srcfeed>http://jeeker.net/feed/</fs:srcfeed><fs:itemid>feedsky/Jeeker/~5930691/199343499/4073413</fs:itemid></item><item><title>JKit: 自动在评论@用户名中添加页面跳转链接</title><link>http://item.feedsky.com/~feedsky/Jeeker/~5930691/199343500/4073413/1/item.html</link><content:encoded>&lt;p&gt;　　&lt;span class=&quot;red&quot;&gt;2009-04-02 ver0.2 Update:&lt;/span&gt; 支持&amp;#8221;@用户名 &amp;#8220;、&amp;#8221;@用户名,&amp;#8221;、&amp;#8221;@用户名:&amp;#8221;等多种形式；添加跳转链接为绝对路径，不再有分页跳转链接失效问题；链接添加类似“reply-回复的评论ID”的ID，便于使用JS实现一些特效。&lt;/p&gt;
&lt;p&gt;　　在回复评论时我个人习惯使用如Twitter“@用户名 回复内容”的形式，不过由于不像Twitter能给用户名添加链接，如果评论较多的话读者并不能很轻易找到该用户的评论，手动添加又显得麻烦，当原评论被删除时还有链接失效的问题。&lt;/p&gt;
&lt;p&gt;　　其实在Wordpress的插件库里你可以找到一个名为&lt;a href=&quot;http://wordpress.org/extend/plugins/at-reply/&quot;&gt;@reply&lt;/a&gt;的插件解决上述问题，它能自动给用户名添加链接，不过仔细看@reply的源代码你会发现每当它找到一个需要添加链接的用户名时就要进行一次数据库查询操作，相当浪费资源，同时它只对在评论起始处使用“@用户名”时才有效，多次或在评论内容中穿插使用都是无效的。此外@reply还有一个很大的BUG，当一个用户对一篇日志发布多次评论，你也多次使用“@用户名 ”的形式对该用户进行回复时，自动添加的链接指向的都是该用户最后发表的评论，这当然是不合理的。&lt;/p&gt;
&lt;p&gt;　　于是我自己写了一个类似功能的函数，它不进行任何的数据库查询，无论“@用户名 ”在评论中什么位置使用多少次都是有效的，链接总是指向在该回复发表日期之前该用户发表的最近一篇评论。具体效果见&lt;a href=&quot;http://jeeker.net/the-opening-ceremony-of-beijing-2008-from-nbc/#comments&quot;&gt;这里&lt;/a&gt;，你可以拷贝后面的源代码或使用&lt;a href=&quot;http://jeeker.net/projects/jkit-builder/&quot;&gt;JKit Builder&lt;/a&gt;生成带此功能的插件。&lt;/p&gt;
&lt;span id=&quot;more-188&quot;&gt;&lt;/span&gt;
&lt;pre class=&quot;php code&quot; id=&quot;code-syntax&quot;&gt;&lt;span class=&quot;co4&quot;&gt;/**
 * 自动替换评论中&amp;quot;@&amp;quot;为链接形式
 *
 * 支持&amp;quot;@用户名 &amp;quot;、&amp;quot;@用户名,&amp;quot;、&amp;quot;@用户名:&amp;quot;等多种形式
 *
 * @version 0.2
 * @param array $comments
 * @return array
 */&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; JKit_AtReply&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$comments&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;global&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$JKit_AtReply_Foregoing_Comments&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co4&quot;&gt;/**
     * JKit_AtReply中preg_replace_callback的回调函数
     * 
     * 查找之前的是否有找到用户名的评论，如果有则替换为链接形式，否则返回原值
     *
     * @version 0.2
     * @param array $matches
     * @return string
     */&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; JKit_AtReply_Replace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$matches&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;global&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$JKit_AtReply_Foregoing_Comments&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$JKit_AtReply_Foregoing_Comments&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$comment&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;strcasecmp&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$matches&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$comment&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;comment_author&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$comment_link&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_comment_link&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$comment&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;str_replace&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$matches&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'&amp;lt;a id=&amp;quot;reply-'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$comment&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;comment_ID&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'&amp;quot; href=&amp;quot;'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$comment_link&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'&amp;quot;&amp;gt;'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$comment&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;comment_author&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'&amp;lt;/a&amp;gt;'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$matches&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;  
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$matches&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$comments&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$comments&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$comments&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;array_reverse&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$comments&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$count&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$comments&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$comment&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$count&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;++;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$JKit_AtReply_Foregoing_Comments&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;array_slice&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$comments&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$count&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$comment&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;comment_content&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;preg_replace_callback&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;/@(.*?)[ ,:]/&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
                                                          &lt;span class=&quot;st_h&quot;&gt;'JKit_AtReply_Replace'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
                                                          &lt;span class=&quot;re0&quot;&gt;$comment&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;comment_content&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;array_reverse&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$comments&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
add_filter&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'comments_array'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'JKit_AtReply'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;　　&lt;span class=&quot;lead&quot;&gt;NOTE:&lt;/span&gt; &lt;del datetime=&quot;2009-04-02T02:58:15+00:00&quot; title=&quot;2009-04-02更新已修正此问题&quot;&gt;添加的链接为页面内跳转，因此如果你对评论进行分页显示，链接可能无效，请自行修改代码。&lt;/del&gt;此外，必须保证在评论列表中每个评论有“comment-评论ID”的id，如id=&amp;#8221;comment-5409&amp;#8243;&lt;/p&gt;</content:encoded><wfw:commentRss>http://jeeker.net/jkit-auto-link-at-reply/feed/</wfw:commentRss><description>　　2009-04-02 ver0.2 Update: 支持&amp;#8221;@用户名 &amp;#8220;、&amp;#8221;@用户名,&amp;#8221;、&amp;#8221;@用户名:&amp;#8221;等多种形式；添加跳转链接为绝对路径，不再有分页跳转链接失效问题；链接添加类似“reply-回复的评论ID”的ID，便于使用JS实现一些特效。
　　在回复评论时我个人习惯使用如Twitter“@用户名 回复内容”的形式，不过由于不像Twitter能给用户名添加链接，如果评论较多的话读者并不能很轻易找到该用户的评论，手动添加又显得麻烦，当原评论被删除时还有链接失效的问题。
　　其实在Wordpress的插件库里你可以找到一个名为@reply的插件解决上述问题，它能自动给用户名添加链接，不过仔细看@reply的源代码你会发现每当它找到一个需要添加链接的用户名时就要进行一次数据库查询操作，相当浪费资源，同时它只对在评论起始处使用“@用户名”时才有效，多次或在评论内容中穿插使用都是无效的。此外@reply还有一个很大的BUG，当一个用户对一篇日志发布多次评论，你也多次使用“@用户名 ”的形式对该用户进行回复时，自动添加的链接指向的都是该用户最后发表的评论，这当然是不合理的。
　　于是我自己写了一个类似功能的函数，它不进行任何的数据库查询，无论“@用户名 ”在评论中什么位置使用多少次都是有效的，链接总是指向在该回复发表日期之前该用户发表的最近一篇评论。具体效果见这里，你可以拷贝后面的源代码或使用JKit Builder生成带此功能的插件。

/**
 * 自动替换评论中&amp;#34;@&amp;#34;为链接形式
 *
 * 支持&amp;#34;@用户名 &amp;#34;、&amp;#34;@用户名,&amp;#34;、&amp;#34;@用户名:&amp;#34;等多种形式
 *
 * @version 0.2
 * @param array $comments
 * @return array
 */
function JKit_AtReply&amp;#40;$comments&amp;#41; &amp;#123;
    global $JKit_AtReply_Foregoing_Comments;
&amp;#160;
    /**
     * JKit_AtReply中preg_replace_callback的回调函数
     * 
     * [...]</description><category>评论</category><category>PHP</category><category>JKit</category><category>Wordpress</category><category>Developer</category><pubDate>Fri, 13 Mar 2009 21:20:18 +0800</pubDate><author>JinnLynn</author><comments>http://jeeker.net/jkit-auto-link-at-reply/#comments</comments><guid isPermaLink="false">http://jeeker.net/7-autosave/</guid><dc:creator>JinnLynn</dc:creator><fs:srclink>http://jeeker.net/jkit-auto-link-at-reply/</fs:srclink><fs:srcfeed>http://jeeker.net/feed/</fs:srcfeed><fs:itemid>feedsky/Jeeker/~5930691/199343500/4073413</fs:itemid></item><item><title>网站被挂起…</title><link>http://item.feedsky.com/~feedsky/Jeeker/~5930691/199343501/4073413/1/item.html</link><content:encoded>&lt;p&gt;　　上周末访问&lt;a href=&quot;http://jeeker.net/&quot;&gt;Jeeker&lt;/a&gt;时突然发现站点被挂起，提示说可能是因为资源超标、不当言论或域名备案问题，一时之间觉得莫名其妙，Jeeker我都荒废数月了，访问者已经寥寥无几，何来资源超标和不当言论？域名备案似乎也不太可能，jeeker.net这个域名在2007年购买后没多久就进行备案了，前几次域名备案“严打”我都顺利过关，这次怎么又会有问题了呢？&lt;/p&gt;
&lt;p&gt;　　以防万一，我还是上备案系统查了下，于是发现了奇怪的事情，在公共查询里通过域名找不到jeeker.net的备案信息，而备案号倒查的到，进入后台仔细查看备案信息才发现2007年我自行备案时网站域名错写成jeeker.com，网站首页地址则没有写错，狂汗，于是马上联系接入商，修改域名，一番折腾后终于在昨晚网站恢复正常了。&lt;/p&gt;
&lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3351/3345838159_0eed3c02bf_o.jpg&quot; alt=&quot;备案域名错误&quot; class=&quot;JBorder&quot; /&gt;&lt;/p&gt;
&lt;p&gt;　　至此这次网站被关事件似乎就这么过去了，可问题是，我当初备案时域名和首页地址不一致怎么还能通过审核呢？&lt;/p&gt;

&lt;p&gt;　　&lt;span class=&quot;lead&quot;&gt;BTW:&lt;/span&gt; 官方的备案系统很怪异，个人不能修改自己的备案信息，必须接入商修改也就算了，可修改过程居然还要向接入商提供用户名和密码，是不是荒谬了点？&lt;/p&gt;
&lt;p&gt;　　&lt;span class=&quot;lead&quot;&gt;PS:&lt;/span&gt; 最近的TGBUS事件和备案问题让我有点把空间和域名转移到国外的冲动，&lt;a href=&quot;https://www.godaddy.com/&quot;&gt;GoDaddy&lt;/a&gt;、&lt;a href=&quot;http://www.hostmonster.com/&quot;&gt;Host Monster&lt;/a&gt;似乎是不错的选择，权衡利弊中&amp;#8230;.&lt;/p&gt;</content:encoded><wfw:commentRss>http://jeeker.net/website-was-suspended/feed/</wfw:commentRss><description>　　上周末访问Jeeker时突然发现站点被挂起，提示说可能是因为资源超标、不当言论或域名备案问题，一时之间觉得莫名其妙，Jeeker我都荒废数月了，访问者已经寥寥无几，何来资源超标和不当言论？域名备案似乎也不太可能，jeeker.net这个域名在2007年购买后没多久就进行备案了，前几次域名备案“严打”我都顺利过关，这次怎么又会有问题了呢？
　　以防万一，我还是上备案系统查了下，于是发现了奇怪的事情，在公共查询里通过域名找不到jeeker.net的备案信息，而备案号倒查的到，进入后台仔细查看备案信息才发现2007年我自行备案时网站域名错写成jeeker.com，网站首页地址则没有写错，狂汗，于是马上联系接入商，修改域名，一番折腾后终于在昨晚网站恢复正常了。

　　至此这次网站被关事件似乎就这么过去了，可问题是，我当初备案时域名和首页地址不一致怎么还能通过审核呢？

　　BTW: 官方的备案系统很怪异，个人不能修改自己的备案信息，必须接入商修改也就算了，可修改过程居然还要向接入商提供用户名和密码，是不是荒谬了点？
　　PS: 最近的TGBUS事件和备案问题让我有点把空间和域名转移到国外的冲动，GoDaddy、Host Monster似乎是不错的选择，权衡利弊中&amp;#8230;.</description><category>站务</category><category>备案</category><category>Diary</category><category>域名</category><pubDate>Wed, 11 Mar 2009 19:57:16 +0800</pubDate><author>JinnLynn</author><comments>http://jeeker.net/website-was-suspended/#comments</comments><guid isPermaLink="false">http://jeeker.net/52-autosave/</guid><dc:creator>JinnLynn</dc:creator><fs:srclink>http://jeeker.net/website-was-suspended/</fs:srclink><fs:srcfeed>http://jeeker.net/feed/</fs:srcfeed><fs:itemid>feedsky/Jeeker/~5930691/199343501/4073413</fs:itemid></item><item><title>JKit Builder</title><link>http://item.feedsky.com/~feedsky/Jeeker/~5930691/199343502/4073413/1/item.html</link><content:encoded>&lt;p id=&quot;pro-name-jkit-builder&quot;&gt;　　Current Version: &lt;span id=&quot;pro-version&quot;&gt;0.1a2&lt;/span&gt;　Last Update: &lt;span id=&quot;pro-update&quot;&gt;2009.04.02&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;　　JKit Builder是插件自助生成系统，通过它可以根据个人需求自动生成个性化的Wordpress插件。&lt;/p&gt;
&lt;p&gt;　　&lt;a href=&quot;http://jeeker.net/projects/jkit-builder&quot;&gt;立即体验&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://jeeker.net/projects/jkit-builder/feed/</wfw:commentRss><description>　　Current Version: 0.1a2　Last Update: 2009.04.02
　　JKit Builder是插件自助生成系统，通过它可以根据个人需求自动生成个性化的Wordpress插件。
　　立即体验</description><category>Other</category><pubDate>Sat, 27 Dec 2008 12:22:42 +0800</pubDate><author>JinnLynn</author><comments>http://jeeker.net/projects/jkit-builder/#comments</comments><guid isPermaLink="false">http://jeeker.net/?page_id=191</guid><dc:creator>JinnLynn</dc:creator><fs:srclink>http://jeeker.net/projects/jkit-builder/</fs:srclink><fs:srcfeed>http://jeeker.net/feed/</fs:srcfeed><fs:itemid>feedsky/Jeeker/~5930691/199343502/4073413</fs:itemid></item><item><title>JKit: 定期自动优化数据库</title><link>http://item.feedsky.com/~feedsky/Jeeker/~5930691/199343503/4073413/1/item.html</link><content:encoded>&lt;p&gt;　　在MySQL中对表的数据进行删除操作时，实际上并没有真正的删除这些记录，而是被保存在链接清单中，这些多余数据不但占用数据库的存储空间，对效率也有一定的影响，Wordpress中wp_comments、wp_options等表尤为容易产生这些多余的数据，因为它们往往比别的表进行更多的删除或更新操作。&lt;/p&gt;
&lt;p&gt;　　使用SQL中的&lt;a href=&quot;http://dev.mysql.com/doc/refman/5.1/zh/sql-syntax.html#optimize-table&quot;&gt;OPTIMIZE TABLE&lt;/a&gt;语句就可以对数据表进行整理,修复碎片,并且重新排序索引，提升性能，你可以通过phpMyAdmin或Wordpress插件&lt;a href=&quot;http://wordpress.designpraxis.at/plugins/optimize-db/&quot;&gt;Optimize DB&lt;/a&gt;实现上述语句的功能，不过它们都需要手动进行，并不方便。&lt;/p&gt;
&lt;p&gt;　　实际上只要通过下列十几行简单的PHP语句就可以在Wordpress中实现定期整理数据库的目的，需要注意的是数据库在使用OPTIMIZE TABLE进行优化时会被锁定，因此不益过于频繁的进行此项操作，下面默认是半个月整理一次，应该是比较合适的。&lt;/p&gt;
&lt;span id=&quot;more-169&quot;&gt;&lt;/span&gt;
&lt;pre class=&quot;php code&quot; id=&quot;code-syntax&quot;&gt;&lt;span class=&quot;co4&quot;&gt;/**
 * 添加计划周期
 *
 * @version 0.1
 * @author JinnLynn
 * @param array $schedules
 * @return array
 */&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; JKit_AddScheduleRecurrence&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$schedules&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$schedules&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'semimonthly'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'interval'&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1296000&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
                                       &lt;span class=&quot;st_h&quot;&gt;'display'&lt;/span&gt;  &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; __&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'Once Semimonthly'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$schedules&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
add_filter&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'cron_schedules'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'JKit_AddScheduleRecurrence'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co4&quot;&gt;/**
 * 优化数据库，整理数据库碎片，重建索引
 *
 * @version 0.1
 * @author JinnLynn
 */&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;function&lt;/span&gt; JKit_OptimizeDB&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;global&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$wpdb&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$tables&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$wpdb&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;get_results&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;SHOW TABLE STATUS&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$tables&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$table&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$table&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;Data_free&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$wpdb&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;query&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;OPTIMIZE TABLE &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$table&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;me1&quot;&gt;Name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
add_action&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'optimizedb_automatically_schedule'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'JKit_OptimizeDB'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;wp_next_scheduled&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'optimizedb_automatically_schedule'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    wp_schedule_event&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'semimonthly'&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;'optimizedb_automatically_schedule'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;　　&lt;span class=&quot;lead&quot;&gt;note:&lt;/span&gt; wp_schedule_event必须在add_filter之后被执行，否则优化数据库的计划操作不会被成功执行。你可以使用&lt;a href=&quot;http://jeeker.net/projects/jkit-builder/&quot;&gt;JKit Builder&lt;/a&gt;生成带此功能的插件。&lt;/p&gt;</content:encoded><wfw:commentRss>http://jeeker.net/jkit-optimize-database-automatically/feed/</wfw:commentRss><description>　　在MySQL中对表的数据进行删除操作时，实际上并没有真正的删除这些记录，而是被保存在链接清单中，这些多余数据不但占用数据库的存储空间，对效率也有一定的影响，Wordpress中wp_comments、wp_options等表尤为容易产生这些多余的数据，因为它们往往比别的表进行更多的删除或更新操作。
　　使用SQL中的OPTIMIZE TABLE语句就可以对数据表进行整理,修复碎片,并且重新排序索引，提升性能，你可以通过phpMyAdmin或Wordpress插件Optimize DB实现上述语句的功能，不过它们都需要手动进行，并不方便。
　　实际上只要通过下列十几行简单的PHP语句就可以在Wordpress中实现定期整理数据库的目的，需要注意的是数据库在使用OPTIMIZE TABLE进行优化时会被锁定，因此不益过于频繁的进行此项操作，下面默认是半个月整理一次，应该是比较合适的。

/**
 * 添加计划周期
 *
 * @version 0.1
 * @author JinnLynn
 * @param array $schedules
 * @return array
 */
function JKit_AddScheduleRecurrence&amp;#40;$schedules&amp;#41; &amp;#123;
    $schedules&amp;#91;'semimonthly'&amp;#93; = array&amp;#40; 'interval' =&amp;#62; 1296000, 
                       [...]</description><category>SQL</category><category>PHP</category><category>JKit</category><category>Wordpress</category><category>Developer</category><category>数据库</category><category>优化</category><pubDate>Thu, 25 Dec 2008 22:33:47 +0800</pubDate><author>JinnLynn</author><comments>http://jeeker.net/jkit-optimize-database-automatically/#comments</comments><guid isPermaLink="false">http://jeeker.net/?p=169</guid><dc:creator>JinnLynn</dc:creator><fs:srclink>http://jeeker.net/jkit-optimize-database-automatically/</fs:srclink><fs:srcfeed>http://jeeker.net/feed/</fs:srcfeed><fs:itemid>feedsky/Jeeker/~5930691/199343503/4073413</fs:itemid></item><item><title>PostRank</title><link>http://item.feedsky.com/~feedsky/Jeeker/~5930691/199343504/4073413/1/item.html</link><content:encoded>&lt;p id=&quot;pro-name-postrank&quot;&gt;　　Current Version: &lt;span id=&quot;pro-version&quot;&gt;0.1.1&lt;/span&gt;　Last Update: &lt;span id=&quot;pro-update&quot;&gt;2008.12.19&lt;/span&gt;&lt;/p&gt;
&lt;div id=&quot;jSlider-postrank&quot; class=&quot;pro-info&quot; title=&quot;Tips:&quot;&gt;
    &lt;div class=&quot;panelContainer&quot;&gt;
    &lt;div class=&quot;panel&quot; title=&quot;Description&quot;&gt;
        &lt;h3&gt;Description&lt;/h3&gt;
        &lt;p&gt;　　一直以来我都是使用Popularity Contest来记录日志的浏览数和获取某篇日志在博客中的排名，但其在数据库中建立了两个表用于存储数据以及对某些在我看来是无用数据的统计让我在使用中对它有些许的不满意，于是就有了这个PostRank。&lt;/p&gt;
        &lt;p&gt;　　类似的，PostRank提供了浏览计数、统计日志排名等功能，不同的是，PostRank不对Feed、分类、首页、存档等的浏览进行统计，因为个人觉得这些数据并不能表明读者对某篇日志的重视程度。&lt;/p&gt;
        &lt;ul class=&quot;feature&quot;&gt;
            &lt;li&gt;记录日志被浏览次数&lt;/li&gt;
            &lt;li&gt;通过日志浏览数、评论、通告、PING计算单个日志在所有文章中的排名&lt;/li&gt;
            &lt;li&gt;可指定上述的相应权值&lt;/li&gt;
            &lt;li&gt;输出最受欢迎日志、浏览数最高日志&lt;/li&gt;
            &lt;li&gt;支持Widget&lt;/li&gt;
            &lt;li&gt;定期自动重新统计&lt;/li&gt;
            &lt;li&gt;可选是否忽略搜索机器人的浏览&lt;/li&gt;
            &lt;li&gt;数据存储于postmate表中&lt;/li&gt;
            &lt;li&gt;后台详细自定义报告&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;
    &lt;div class=&quot;panel&quot; title=&quot;Screenshot&quot;&gt;
        &lt;h3&gt;Screenshot&lt;/h3&gt;
        &lt;p align=&quot;center&quot;&gt;&lt;img src=&quot;http://farm4.static.flickr.com/3177/3118557030_c672976085.jpg&quot; alt=&quot;PostRank Screenshot&quot; class=&quot;JBorder&quot; /&gt;&lt;/p&gt;
    &lt;/div&gt;
    &lt;div class=&quot;panel&quot; title=&quot;Changelog&quot;&gt;
        &lt;h3&gt;Changelog&lt;/h3&gt;
        &lt;ul class=&quot;pro-changelog&quot;&gt;
            &lt;li&gt;2008-12-19 ver 0.1.1
            &lt;ul&gt;
                &lt;li&gt;[+] 定期自动重新统计&lt;/li&gt;
            &lt;/ul&gt;
            &lt;/li&gt;
            &lt;li&gt;2008-12-18 ver 0.1
            &lt;ul&gt;
                &lt;li&gt;First Release.&lt;/li&gt;
            &lt;/ul&gt;
            &lt;/li&gt;
        &lt;/ul&gt;
        &lt;p id=&quot;pro-svnlog&quot;&gt;&lt;/p&gt;
    &lt;/div&gt;    
    &lt;div class=&quot;panel&quot; title=&quot;Download&quot;&gt;
        &lt;h3&gt;Download&lt;/h3&gt;
        &lt;p id=&quot;pro-download&quot;&gt;　　&lt;a href=&quot;http://wordpress.org/extend/plugins/postrank/&quot;&gt;Download&lt;/a&gt;&lt;/p&gt;
    &lt;/div&gt;
    &lt;div class=&quot;panel&quot; title=&quot;Usage&quot;&gt;
        &lt;h3&gt;Usage&lt;/h3&gt;
        &lt;p&gt;　　&lt;span class=&quot;lead&quot;&gt;install:&lt;/span&gt;解压，上传文件夹至wp-content\plugins目录下，激活，激活时PostRank将对所有已发布的日志进行积分统计，你也可以随时在后台点击&amp;#8221;ReStat&amp;#8221;进行重新统计。&lt;/p&gt;
        &lt;p&gt;　　&lt;span class=&quot;lead&quot;&gt;function:&lt;/span&gt;&lt;br /&gt;
　　&lt;span class=&quot;code php inline&quot; id=&quot;code-syntax&quot;&gt;JPR_GetRank&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$post_id&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
　　获取某篇日志排名，参数为日志ID&lt;br /&gt;
　　如&lt;span class=&quot;code php inline&quot; id=&quot;code-syntax&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; JPR_GetRank&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;，意即输出ID为100的日志的排名。
        &lt;/p&gt;
        &lt;p&gt;　　&lt;span class=&quot;code php inline&quot; id=&quot;code-syntax&quot;&gt;JPR_TheRank&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
　　在Wordpress日志输出循环中直接显示日志排名值，无参数&lt;br /&gt;
　　如&lt;span class=&quot;code php inline&quot; id=&quot;code-syntax&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; JPR_TheRank&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;
        &lt;/p&gt;
        &lt;p&gt;　　&lt;span class=&quot;code php inline&quot; id=&quot;code-syntax&quot;&gt;JPR_MostPopular&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$args&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;''&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
　　显示最受欢迎日志，参数为字符串，支持的变量为：&lt;br /&gt;
　　mode 类型 可选post、page或空值，默认为空，即输出中包含post和page&lt;br /&gt;
　　limit 数量 输出数量 默认为10&lt;br /&gt;
　　before 输出时每项前面的HTML代码 默认 &amp;lt;li&gt;&lt;br /&gt;
　　after 输出时每项后面的HTML代码 默认 &amp;lt;/li&gt;&lt;br /&gt;
　　如&lt;span class=&quot;code php inline&quot; id=&quot;code-syntax&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; JPR_MostPopular&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'mode=post&amp;amp;limit=5'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;，意即输出最受欢迎的5篇post&lt;br /&gt;
　　&lt;span class=&quot;lead&quot;&gt;Note:&lt;/span&gt;可通过Widget实现本函数功能。
        &lt;/p&gt;
        &lt;p&gt;　　&lt;span class=&quot;code php inline&quot; id=&quot;code-syntax&quot;&gt;JPR_GetViews&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$post_id&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
　　获取日志浏览数，参数为日志ID&lt;br /&gt;
　　如&lt;span class=&quot;code php inline&quot; id=&quot;code-syntax&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; JPR_GetViews&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;，意即输出ID为100的日志的被浏览次数。
        &lt;/p&gt;
        &lt;p&gt;　　&lt;span class=&quot;code php inline&quot; id=&quot;code-syntax&quot;&gt;JPR_TheViews&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$args&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;''&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
　　在Wordpress日志输出循环中直接显示日志浏览数，参数为字符串，支持的变量为：&lt;br /&gt;
　　zero 当浏览数为0时输出字符 默认 No Views&lt;br /&gt;
　　one 当浏览数为1时输出字符 默认 1 View&lt;br /&gt;
　　more 当浏览数大于1时输出字符 默认 % Views （%将被具体浏览数替换）&lt;br /&gt;
　　post_id 日志ID 默认为WP循环中当前日志ID，如不在循环则为0&lt;br /&gt;
　　如&lt;span class=&quot;code php inline&quot; id=&quot;code-syntax&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; JPR_TheViews&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;
        &lt;/p&gt;
        &lt;p&gt;　　&lt;span class=&quot;code php inline&quot; id=&quot;code-syntax&quot;&gt;JPR_MostViewed&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$args&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;''&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
　　显示浏览数最多的日志，参数为一字符串，支持的变量为：&lt;br /&gt;
　　mode 类型 可选post、page或空值，默认为空，即输出中包含post和page&lt;br /&gt;
　　limit 数量 输出数量 默认为10&lt;br /&gt;
　　before 输出时每项前面的HTML代码 默认 &amp;lt;li&gt;&lt;br /&gt;
　　after 输出时每项后面的HTML代码 默认 &amp;lt;/li&gt;&lt;br /&gt;
　　如&lt;span class=&quot;code php inline&quot; id=&quot;code-syntax&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; JPR_MostViewed&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;'mode=post&amp;amp;limit=5'&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;，意即输出被浏览次数最多的5篇post&lt;br /&gt;
　　&lt;span class=&quot;lead&quot;&gt;Note:&lt;/span&gt;可通过Widget实现本函数功能。
        &lt;/p&gt;
    &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;</content:encoded><wfw:commentRss>http://jeeker.net/projects/postrank/feed/</wfw:commentRss><description>　　Current Version: 0.1.1　Last Update: 2008.12.19

    
    
        Description
        　　一直以来我都是使用Popularity Contest来记录日志的浏览数和获取某篇日志在博客中的排名，但其在数据库中建立了两个表用于存储数据以及对某些在我看来是无用数据的统计让我在使用中对它有些许的不满意，于是就有了这个PostRank。
        　　类似的，PostRank提供了浏览计数、统计日志排名等功能，不同的是，PostRank不对Feed、分类、首页、存档等的浏览进行统计，因为个人觉得这些数据并不能表明读者对某篇日志的重视程度。
        
          [...]</description><category>Other</category><pubDate>Fri, 19 Dec 2008 20:41:45 +0800</pubDate><author>JinnLynn</author><comments>http://jeeker.net/projects/postrank/#comments</comments><guid isPermaLink="false">http://jeeker.net/?page_id=189</guid><dc:creator>JinnLynn</dc:creator><fs:srclink>http://jeeker.net/projects/postrank/</fs:srclink><fs:srcfeed>http://jeeker.net/feed/</fs:srcfeed><fs:itemid>feedsky/Jeeker/~5930691/199343504/4073413</fs:itemid></item><item><title>NBC版北京2008奥运会开幕式</title><link>http://item.feedsky.com/~feedsky/Jeeker/~5930691/199343505/4073413/1/item.html</link><content:encoded>&lt;p&gt;　　刚刚又看了下&lt;a href=&quot;http://www.mininova.org/tor/1679166&quot;&gt;NBC版的北京2008奥运会开幕式&lt;/a&gt;，不用多说NBC版的开幕式剪辑的如何让我再度感动，网上已经有太多的评论，我只想收回先前所说的“&lt;a href=&quot;http://jeeker.net/the-opening-ceremony-of-beijing-2008/#amazing&quot;&gt;开幕式稍显欠缺震撼&lt;/a&gt;”的话，虽然我的英语听力水平极其有限，但从解说员不时冒出的&amp;#8221;wow unbelievable amazing incredible&amp;#8221;等单词中依旧能感受到美国人对精彩绝伦的开幕式的由衷赞叹，而&lt;a href=&quot;http://2008.sohu.com/20080811/n258755616.shtml&quot;&gt;在美国获得的高收视率&lt;/a&gt;也恰恰印证了这点。&lt;/p&gt;
&lt;p&gt;　　不可否认的是，NBC不是直播，有着更充裕的时间处理细节，但CCTV在某些地方做得也太让人失望甚至反感了，为什么突兀的穿插那么多国家领导人的画面，甚至有不少是早已退居二线的？领导真有那么重要？我们每天在电视媒体上看的还少吗？是人都知道广场文艺要的就是那种宏大震撼的场面，没事给那么多近景特写干嘛？于是我们看到的是扇扇子、挖鼻孔、晃动的镜头等等不雅混乱的画面，而本该给人震撼的万张笑脸等场面却因此变得淡而无味。&lt;/p&gt;
&lt;p&gt;　　还有很多&amp;#8230;&lt;/p&gt;
&lt;p&gt;　　作为奥运会的主办国，占据着所有的便利，但我们看到的反而不是最完美的开幕式，这真是莫大的讽刺，不过更应该值得庆幸的是提供国际信号的是BOB，而不是我们所看到的，否则不只老谋子，所有中国人都要欲哭无泪了。&lt;/p&gt;
&lt;p&gt;　&lt;/p&gt;
&lt;p&gt;　　顺便一提的是在NBC版开幕式结尾的插曲，这首由2008年“美国偶像”第七季冠军&lt;a href=&quot;http://en.wikipedia.org/wiki/David_Cook_(singer)&quot;&gt;David Cook&lt;/a&gt;演唱的&lt;a href=&quot;http://en.wikipedia.org/wiki/The_Time_of_My_Life_(David_Cook_song)&quot;&gt;《The Time of My Life》&lt;/a&gt;也非常的切合奥运会的主题，值得强烈推荐，在NBC北京奥运会转播节目中观众还将经常会听到这首曲调优美的励志歌曲。&lt;/p&gt;
&lt;p&gt;&lt;object type=&quot;application/x-shockwave-flash&quot; data=&quot;http://jeeker.net/wp-content/plugins/jkit/style/audioplayer.swf&quot; width=&quot;290&quot; height=&quot;24&quot; id=&quot;audioplayer1661142577&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://jeeker.net/wp-content/plugins/jkit/audioplayer.swf&quot; /&gt;&lt;param name=&quot;FlashVars&quot; value=&quot;playerID=1661142577&amp;amp;bg=0xCDDFF3&amp;amp;leftbg=0x357DCE&amp;amp;lefticon=0xF2F2F2&amp;amp;rightbg=0x357DCE&amp;amp;rightbghover=0x4499EE&amp;amp;righticon=0xF2F2F2&amp;amp;righticonhover=0xFFFFFF&amp;amp;text=0x357DCE&amp;amp;slider=0x357DCE&amp;amp;track=0xFFFFFF&amp;amp;border=0xFFFFFF&amp;amp;loader=0x8EC2F4&amp;amp;soundFile=http%3A%2F%2Fvfile.home.news.cn%2Fmusic%2Fpublic%2Fvd2%2F200808%2F15%2F97%2FMUfs02200808151844525197d77e.mp3&quot; /&gt;&lt;param name=&quot;quality&quot; value=&quot;high&quot; /&gt;&lt;param name=&quot;menu&quot; value=&quot;false&quot; /&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot; /&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll taste every moment, and live it out loud.&lt;br /&gt; 
我会品味每时每刻，勇敢地实现我的梦想。&lt;/p&gt;
&lt;p&gt;I know this is the time, this is the time of my life.&lt;br /&gt; 
我知道现在正是时候，是我生命中的时候。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://american.idolblog.com/time-my-life-lyrics-american-idol-winners-song-2008&quot;&gt;完整的歌词&lt;/a&gt;或&lt;a href=&quot;http://zhidao.baidu.com/question/55394701.html#best_answer_content&quot;&gt;中文翻译版&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;　&lt;/p&gt;
&lt;p&gt;　　&lt;span class=&quot;lead&quot;&gt;btw:&lt;/span&gt; 可惜没人敢顶风作案，到目前为止还没有字幕，很想听听美国人是如何介绍中国文化的，从网上的评论来看，似乎说的还不错。&lt;/span&gt;</content:encoded><wfw:commentRss>http://jeeker.net/the-opening-ceremony-of-beijing-2008-from-nbc/feed/</wfw:commentRss><description>　　刚刚又看了下NBC版的北京2008奥运会开幕式，不用多说NBC版的开幕式剪辑的如何让我再度感动，网上已经有太多的评论，我只想收回先前所说的“开幕式稍显欠缺震撼”的话，虽然我的英语听力水平极其有限，但从解说员不时冒出的&amp;#8221;wow unbelievable amazing incredible&amp;#8221;等单词中依旧能感受到美国人对精彩绝伦的开幕式的由衷赞叹，而在美国获得的高收视率也恰恰印证了这点。
　　不可否认的是，NBC不是直播，有着更充裕的时间处理细节，但CCTV在某些地方做得也太让人失望甚至反感了，为什么突兀的穿插那么多国家领导人的画面，甚至有不少是早已退居二线的？领导真有那么重要？我们每天在电视媒体上看的还少吗？是人都知道广场文艺要的就是那种宏大震撼的场面，没事给那么多近景特写干嘛？于是我们看到的是扇扇子、挖鼻孔、晃动的镜头等等不雅混乱的画面，而本该给人震撼的万张笑脸等场面却因此变得淡而无味。
　　还有很多&amp;#8230;
　　作为奥运会的主办国，占据着所有的便利，但我们看到的反而不是最完美的开幕式，这真是莫大的讽刺，不过更应该值得庆幸的是提供国际信号的是BOB，而不是我们所看到的，否则不只老谋子，所有中国人都要欲哭无泪了。
　
　　顺便一提的是在NBC版开幕式结尾的插曲，这首由2008年“美国偶像”第七季冠军David Cook演唱的《The Time of My Life》也非常的切合奥运会的主题，值得强烈推荐，在NBC北京奥运会转播节目中观众还将经常会听到这首曲调优美的励志歌曲。

I&amp;#8217;ll taste every moment, and live it out loud. 
我会品味每时每刻，勇敢地实现我的梦想。
I know this is the time, this is the time of my life. 
我知道现在正是时候，是我生命中的时候。
完整的歌词或中文翻译版
　
　　btw: 可惜没人敢顶风作案，到目前为止还没有字幕，很想听听美国人是如何介绍中国文化的，从网上的评论来看，似乎说的还不错。</description><enclosure url="http://sq.txdnl.com/mwt/n/g/_/t/ng_t_minh/playlists/192654/1551103.mp3" length="5629510" type="audio/mpeg"></enclosure><category>北京2008</category><category>开幕式</category><category>NBC</category><category>Standpoint</category><category>奥运会</category><category>Media</category><category>Diary</category><pubDate>Tue, 12 Aug 2008 21:54:05 +0800</pubDate><author>JinnLynn</author><comments>http://jeeker.net/the-opening-ceremony-of-beijing-2008-from-nbc/#comments</comments><guid isPermaLink="false">http://jeeker.net/?p=184</guid><dc:creator>JinnLynn</dc:creator><fs:srclink>http://jeeker.net/the-opening-ceremony-of-beijing-2008-from-nbc/</fs:srclink><fs:srcfeed>http://jeeker.net/feed/</fs:srcfeed><fs:itemid>feedsky/Jeeker/~5930691/199343505/4073413</fs:itemid></item><item><title>北京2008奥运会开幕式</title><link>http://item.feedsky.com/~feedsky/Jeeker/~5930691/199343506/4073413/1/item.html</link><content:encoded>&lt;p&gt;　　百年梦想，七年努力，终于在今晚超过四个小时的开幕式中徐徐拉开了大幕。&lt;/p&gt;
&lt;p&gt;　　&lt;span class=&quot;em&quot;&gt;升旗仪式&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;　　当小女生轻声吟唱起优美的歌唱祖国，当雄壮的义勇军进行曲响起，全场齐声高唱国歌，国旗缓缓升起，相信每一个中国人都会心潮澎湃，为我们能生存在这个伟大的国家、伟大的时代而感到无比的骄傲和自豪，为在今后十六天北京能够向全世界呈现一次完美的奥林匹克盛会而衷心祝福。&lt;/p&gt;
&lt;p&gt;　　&lt;span class=&quot;em&quot;&gt;文艺表演&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;　　整个过程还是可圈可点的，老谋子对色彩灯光的把握确实在国内少人能及，对中国传统文化的展示也让人满意，毕竟正如老谋子所说“一小时内完整展示五千年的中国文化，神仙也不可能”，贯穿始终的画轴算是一个亮点，传统与现代比较完美的结合，但表演中似乎“话”说多了，外国人懂？文化这种东西还是用画面表现比较妥当些。&lt;/p&gt;
&lt;p id=&quot;amazing&quot;&gt;　　当然，纵观整个文艺表演，优雅有余，稍显欠缺震撼，虽时有惊叹，但像刚开始千人击缶倒数以及随后29个巨大脚印沿北京中轴线走进国家体育场那种让人热血沸腾的场面到后面似乎没有再次出现，节奏整体偏慢，不过这或许是必然的，中国文化骨子里应该就是柔美飘逸为主，如水墨，如太极&amp;#8230;&lt;/p&gt;
&lt;p&gt;　　好听的说完了，也得有些刺耳声音，首先个人感觉航天员那段基本是鸡肋，完全是强加进去的，中国的官啊该对你们说些什么呢？其次，老谋子说文艺表演最后展示笑脸的场景为什么电视转播给的是近景？本来是一个震撼人心的绝佳创意被导播破坏了，可惜，第三，刘欢和莎拉布莱曼的主题曲《you and me》，虚幻飘渺空灵，但如同雅典奥运会，传唱度估计相当的低，通俗点大众化点，或许更好些。&lt;/p&gt;
&lt;p&gt;　　&lt;span class=&quot;em&quot;&gt;运动员进场&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;　　刚开始貌似有点混乱，不过很快就正常了，中规中矩，没有出彩的地方（当然也不需要），背景音乐有点杂。&lt;/p&gt;
&lt;p&gt;　　&lt;span class=&quot;em&quot;&gt;点火仪式&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;　　酷！有点惊奇，有点飘逸，有点浪漫，延续了贯穿圣火传递和文艺表演中卷轴的主线，超出我个人的期望，很中国，主火炬手李宁也是众望所归，就是感觉过程稍稍长了些。&lt;/p&gt;
&lt;p&gt;　&lt;/p&gt;
&lt;p&gt;　　&lt;span class=&quot;lead&quot;&gt;update:&lt;/span&gt;若要我更简单直接的说对开幕式的印象，我想文艺表演部分可以打&lt;span class=&quot;em red&quot;&gt;85～90分&lt;/span&gt;，如果电视导播处理的再好些的话，或许能到90，点火仪式则能在&lt;span class=&quot;em red&quot;&gt;90分以上&lt;/span&gt;，整体还是让人十分满意的。&lt;/p&gt;</content:encoded><wfw:commentRss>http://jeeker.net/the-opening-ceremony-of-beijing-2008/feed/</wfw:commentRss><description>　　百年梦想，七年努力，终于在今晚超过四个小时的开幕式中徐徐拉开了大幕。
　　升旗仪式
　　当小女生轻声吟唱起优美的歌唱祖国，当雄壮的义勇军进行曲响起，全场齐声高唱国歌，国旗缓缓升起，相信每一个中国人都会心潮澎湃，为我们能生存在这个伟大的国家、伟大的时代而感到无比的骄傲和自豪，为在今后十六天北京能够向全世界呈现一次完美的奥林匹克盛会而衷心祝福。
　　文艺表演
　　整个过程还是可圈可点的，老谋子对色彩灯光的把握确实在国内少人能及，对中国传统文化的展示也让人满意，毕竟正如老谋子所说“一小时内完整展示五千年的中国文化，神仙也不可能”，贯穿始终的画轴算是一个亮点，传统与现代比较完美的结合，但表演中似乎“话”说多了，外国人懂？文化这种东西还是用画面表现比较妥当些。
　　当然，纵观整个文艺表演，优雅有余，稍显欠缺震撼，虽时有惊叹，但像刚开始千人击缶倒数以及随后29个巨大脚印沿北京中轴线走进国家体育场那种让人热血沸腾的场面到后面似乎没有再次出现，节奏整体偏慢，不过这或许是必然的，中国文化骨子里应该就是柔美飘逸为主，如水墨，如太极&amp;#8230;
　　好听的说完了，也得有些刺耳声音，首先个人感觉航天员那段基本是鸡肋，完全是强加进去的，中国的官啊该对你们说些什么呢？其次，老谋子说文艺表演最后展示笑脸的场景为什么电视转播给的是近景？本来是一个震撼人心的绝佳创意被导播破坏了，可惜，第三，刘欢和莎拉布莱曼的主题曲《you and me》，虚幻飘渺空灵，但如同雅典奥运会，传唱度估计相当的低，通俗点大众化点，或许更好些。
　　运动员进场
　　刚开始貌似有点混乱，不过很快就正常了，中规中矩，没有出彩的地方（当然也不需要），背景音乐有点杂。
　　点火仪式
　　酷！有点惊奇，有点飘逸，有点浪漫，延续了贯穿圣火传递和文艺表演中卷轴的主线，超出我个人的期望，很中国，主火炬手李宁也是众望所归，就是感觉过程稍稍长了些。
　
　　update:若要我更简单直接的说对开幕式的印象，我想文艺表演部分可以打85～90分，如果电视导播处理的再好些的话，或许能到90，点火仪式则能在90分以上，整体还是让人十分满意的。</description><category>北京2008</category><category>开幕式</category><category>Standpoint</category><category>Media</category><category>Diary</category><pubDate>Sat, 09 Aug 2008 00:09:48 +0800</pubDate><author>JinnLynn</author><comments>http://jeeker.net/the-opening-ceremony-of-beijing-2008/#comments</comments><guid isPermaLink="false">http://jeeker.net/?p=183</guid><dc:creator>JinnLynn</dc:creator><fs:srclink>http://jeeker.net/the-opening-ceremony-of-beijing-2008/</fs:srclink><fs:srcfeed>http://jeeker.net/feed/</fs:srcfeed><fs:itemid>feedsky/Jeeker/~5930691/199343506/4073413</fs:itemid></item></channel></rss>