<?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>蝎子's life &#187; wordpress</title>
	<atom:link href="http://ohblue.com/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://ohblue.com</link>
	<description>蜘蛛般生活 -_-!</description>
	<lastBuildDate>Thu, 06 May 2010 13:01:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>WordPress的Rewrite机制分析</title>
		<link>http://ohblue.com/the-rewrite-of-wordpress/</link>
		<comments>http://ohblue.com/the-rewrite-of-wordpress/#comments</comments>
		<pubDate>Wed, 06 May 2009 09:35:58 +0000</pubDate>
		<dc:creator>蝎子</dc:creator>
				<category><![CDATA[笔记]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://ohblue.com/wordpress%e7%9a%84rewrite%e6%9c%ba%e5%88%b6%e5%88%86%e6%9e%90</guid>
		<description><![CDATA[最近在研究WP的rewrite机制，搜到这篇不错的文章，把之前不明白的地方都一一解答了^^，放上来备用。]]></description>
			<content:encoded><![CDATA[<p>最近在研究WP的rewrite机制，搜到这篇不错的文章，把之前不明白的地方都一一解答了^^，放上来备用。<br />
================================================<br />
大家都知道，WordPress 可以通过 Apache 的 mod_rewrite 模块，使用 .htaccess 文件来重写URL，生成静态链接(或称永久链接)，如 http://example.com/年/月/日/日志名/ ，使URL更加美观也对搜索引擎更友好。但具体是如何实现的，可能有些朋友不是很清楚，因此我在这里稍稍阐述下。而在不支持 .htaccess 的主机环境中，也可以使用 http://example.com/index.php/年/月/日/日志名/ 这种形式的URL，以及使用ISAPI等东东，原理都差不多，本文就不探讨了。</p>
<p>我以 http://www.oldjan.cn/database-dict-for-wordpress-23/2008/02/25/ 为具体例子进行分析。首先我们先来看看WordPress根目录下的 .htaccess 文件，其中有一段如下</p>
<pre class="brush:php">
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</pre>
<p>意思是指，当接收到的请求不是一个文件或目录时，则会重写为WordPress根目录下的index.php文件，然后 index.php 就开始处理请求。</p>
<p>index.php 会包含 wp-blog-header.php， wp-blog-header.php 会包含 wp-config.php， wp-config.php 又会包含 wp-settings.php，最后 wp-settings.php 会包含一大堆文件进来，晕了吧。其中， wp-includes/query.php 中的 WP_Query 类和 wp-includes/classes.php 中的 WP 类是Rewrite最主要的，因此我们将对象实例化<br />
<span id="more-377"></span></p>
<pre class="brush:php">
$wp_the_query =&#038; new WP_Query();
$wp_query     =&#038; $wp_the_query;
$wp_rewrite   =&#038; new WP_Rewrite();
$wp           =&#038; new WP();
</pre>
<p>做了这么多准备工作后，WP真正开始处理请求了，在 wp-blog-header.php 中调用wp()函数，在这个函数执行了 WP 类的成员方法main()</p>
<pre class="brush:php">
function main($query_args = ”) {
    $this->init(); //初始化，获取当前用户信息
    $this->parse_request($query_args); //解析请求
    $this->send_headers(); //发送头信息
    $this->query_posts(); //查询日志
    $this->handle_404(); //操作404(URL地址不存在)
    $this->register_globals(); //注册全局变量
    do_action_ref_array(’wp’, array(&#038;$this));
}
</pre>
<p>我们进入$this-&gt;parse_request()瞧瞧，通过$_SERVER[’REQUEST_URI’]和过滤得到字符串 ‘database-dict-for-wordpress-23/2008/02/25′ 赋值给$request_match，与存储在数据库中的rewrite规则集进行正则匹配，rewrite规则集类似与下面这个样子，当然，比下面的多了很多。</p>
<pre class="brush:php">
[wp-feed.php$] => index.php?feed=feed
[wp-commentsrss2.php$] => index.php?feed=rss2&#038;withcomments=1
[(about)/trackback/?$] => index.php?pagename=$matches[1]&#038;tb=1
[page/?([0-9]{1,})/?$] => index.php?&#038;paged=$matches[1]
[comments/(feed|rdf|rss|rss2|atom)/?$] => index.php?&#038;feed=$matches[1]&#038;withcomments=1
[search/(.+)/?$] => index.php?s=$matches[1]
[category/(.+?)/?$] => index.php?category_name=$matches[1]
[tag/(.+?)/?$] => index.php?tag=$matches[1]
</pre>
<p>我的请求与 ‘([^/]+)/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})(/[0-9]+)?/?$’ 这条匹配，所以我的请求被转化为 ‘name=database-dict-for-wordpress-23&#038;year=2008&#038;monthnum=02&#038; day=25&#038;page=’，如果请求都没匹配上那就肯定404了。接着就是通过 $this-&gt;query_posts() 来查询日志信息了，查询不到那还是404，废话…</p>
<p>把这些都整完了，回到 wp-blog-header.php，包含 wp-includes/template-loader.php 来加载模板并显示，日志显示日志，页面显示页面，404显示404，总之就是各神归位，OVER<br />
=====================================================<br />
p.s.原文地址已经打不开了就不贴出来啦</p>
]]></content:encoded>
			<wfw:commentRss>http://ohblue.com/the-rewrite-of-wordpress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>终究还是转到wp了&#8230;</title>
		<link>http://ohblue.com/bo-to-wordpress/</link>
		<comments>http://ohblue.com/bo-to-wordpress/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 17:27:06 +0000</pubDate>
		<dc:creator>蝎子</dc:creator>
				<category><![CDATA[日记]]></category>
		<category><![CDATA[bo-blog]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://wp/2009/01/%e7%bb%88%e7%a9%b6%e8%bf%98%e6%98%af%e8%bd%ac%e5%88%b0wp%e4%ba%86/</guid>
		<description><![CDATA[bo-to-wp]]></description>
			<content:encoded><![CDATA[<p>其实早前有先后两次去google了转换程序，自己修改了众多bug后转换成功了。不过总是到最后又因为觉得写blog不应该唯工具论而弃用新程序。</p>
<p>而现在再次将用了将近5年的bo-blog转到全球使用人数最多的wordpress，是因为看到<a href="http://blog.tgb.net.cn" target="_blank">实验小白鼠</a>写了套很赞的<a href="http://blog.tgb.net.cn/index.php?load=read&amp;id=379" target="_self">bo2wp转换程序</a>而手痒，也因为现在的自己急切地想做些什么来换换心情吧 :)<br />
新wp就像刚装好的操作系统，总要一堆插件来丰富功能，所幸先前用wp做过其他网站，对它已经十分熟悉了。</p>
<p>前几天元旦没有像往年一样上来黑皮。2008年是黯淡的一年，雪灾地震加上各种人祸。还是凶猛的本命年，对一个职业阿宅来说，最悲惨的事莫过于两台电脑主板同时坏掉吧，不堪回首的10月和12月&#8230;</p>
<p>全新的2009年，希望能转运啦。</p>
<p>扯远了，总之新博客新气象。我要旺！我要旺！！</p>
]]></content:encoded>
			<wfw:commentRss>http://ohblue.com/bo-to-wordpress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>我用的WordPress插件</title>
		<link>http://ohblue.com/wordpress-plugins/</link>
		<comments>http://ohblue.com/wordpress-plugins/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 17:25:29 +0000</pubDate>
		<dc:creator>蝎子</dc:creator>
				<category><![CDATA[笔记]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://ohblue.com/?p=289</guid>
		<description><![CDATA[几乎每个玩WP的牛人都有一篇“我用的WP插件”总结帖，为了表示我已经成为WP牛人，所以今天也来总结一下我在用的WP插件 =__=

All in One SEO Pack

seo套装，诸如自定义title、keyword、description这些常用的seo方法都可以用它

<span class="readmore"><a href="http://ohblue.com/wordpress-plugins/" title="我用的WordPress插件">阅读全文——共852字</a></span>]]></description>
			<content:encoded><![CDATA[<p>几乎每个玩WP的牛人都有一篇“我用的WP插件”总结帖，为了表示我已经成为WP牛人，所以今天也来总结一下我在用的WP插件 =__=</p>
<p><strong><a href="http://wordpress.org/extend/plugins/all-in-one-seo-pack/" target="_blank">All in One SEO Pack</a></strong><br />
seo套装，诸如自定义title、keyword、description这些常用的seo方法都可以用它<br />
<strong><a href="http://www.01on.com/a/497.html" target="_blank">Auto Save Image</a></strong><br />
国产插件，自动下载远程图片，省了下载上传的功夫了，转帖好助手。<br />
<strong><a href="http://wordpress.org/extend/plugins/bookmarkify/" target="_blank">Bookmarkify</a></strong><br />
书签插件，可以在日志页面增加一排常见的书签按钮，点击提交到各大书签站，譬如Delicious、Google&#8230;<br />
<strong><a href="http://wordpress.org/extend/plugins/cforms/" target="_blank">cForms II</a></strong><br />
自定义表单，你能想到的表单它都能做出来，并且自带多种样式，灰常强大！<br />
<strong><a href="http://www.ilfilosofo.com/blog/2008/02/22/wordpress-gzip-plugin/" target="_blank">GZIP Output</a></strong><br />
Gzip输出页面，不用多说了<br />
<strong><a href="http://wordpress.org/extend/plugins/multi-page-toolkit/" target="_blank">Multi-page Toolkit</a></strong><br />
内容分页插件，除了显示页码之外，通过不同参数可以显示多种分页格式。比如上一页/下一页，或者下拉菜单。<br />
<strong><a href="http://wordpress.org/extend/plugins/alakhnors-post-thumb/" target="_blank">Post Thumb Revisited</a></strong><br />
自动生成缩略图，可以自定义的选项灰常多！灰常强大too！<a name="entrymore"></a><br />
<span id="more-289"></span><strong><a href="http://wordpress.org/extend/plugins/search-unleashed/" target="_blank">Search Unleashed</a></strong><br />
全文搜索、关键词高亮，可以将任意内容加入索引，search everything！<br />
<strong><a href="http://wordpress.org/extend/plugins/simple-tags/" target="_blank">Simple Tags</a></strong><br />
老牌插件了，管理tags利器。<br />
<strong><a href="http://wordpress.org/extend/plugins/wordpress-password-register/" target="_blank">WordPress Password Register</a></strong><br />
又一个国产插件。可以在用户注册页面增加一个密码输入框，新用户注册不用再通过邮件收取密码了。<br />
<strong><a href="http://wordpress.org/extend/plugins/wp-pagenavi/" target="_blank">WP-PageNavi</a></strong><br />
老牌分页插件，分类页要显示页码就靠它。<br />
<strong><a href="http://wordpress.org/extend/plugins/wp-postviews/" target="_blank">WP-PostViews</a></strong><br />
点击数插件，给文章增加点击数功能。要调用按点击数排列的日志就用它了。<br />
<del><strong><a href="http://wordpress.org/extend/plugins/wp-grins/" target="_blank">WP Grins</a></strong><br />
点击表情图插入到编辑器的功能，不过可能是因为太久没更新，对新版WP支持不好，在后台编辑器使用的时候有JS错误。</del><br />
<strong><a href="http://www.raproject.com/wordpress/wp-grins-lite/" target="_blank">WP Grins Lite</a></strong><br />
刚才整理插件的时候，发现有个老外把WP Grins原本使用的<a href="http://www.prototypejs.org/download" target="_blank">Prototype</a>为换成了<a href="http://jquery.com/" target="_blank">jQuery</a>库，占用带宽更小并且在新版WP上完美兼容，哦也～<br />
<strong><a href="http://wordpress.org/extend/plugins/cos-html-cache/" target="_blank">cos-html-cache</a></strong><br />
很优秀的国产WP缓存插件，当页面第一次被浏览的时候就生成静态文件，减轻服务器压力。</p>
<p>-_- 总结完毕</p>
]]></content:encoded>
			<wfw:commentRss>http://ohblue.com/wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>部落格不是故意的</title>
		<link>http://ohblue.com/boblog-to-wordpress/</link>
		<comments>http://ohblue.com/boblog-to-wordpress/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 00:45:15 +0000</pubDate>
		<dc:creator>蝎子</dc:creator>
				<category><![CDATA[日记]]></category>
		<category><![CDATA[bo-blog]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://ohblue.com/?p=259</guid>
		<description><![CDATA[自从上次Dina妹子的台湾部落格被和谐, 帮她用WP架了新部落格Me鋪天蓋地之后, 又一次被WP2.5的新版后台被诱惑到了. 于是前天花了一个通宵来鼓捣boblog到wp的数据转换. 快天亮的时候总算在本地无损地把所有日志和评论留言都转过来了. 可一想到之前所有日志的点击数和天气信息都要丢掉, 又开始舍不得boblog了, 额滴神&#8230;接着就想起几个月前也花了一整天来研究YOYO写的转换程式. 后来也是因为舍不得boblog的旧资料而作罢. 难道这就是传说中的\”好了伤疤忘了疼\”?? 还是乖乖用boblog吧&#8230;在转数据的时候, 发现以前从boblog1.7升级到2.0的时候, 之前的数据ID全都倒序排列了. 而2.0之后的数据又是正序ID排序. 虽然前台显示正常. 但是总是觉得心里不舒坦. 于是把数据倒出来, 把ID为111到0的日志重新改为 0到111, 还有每篇日志相对应的几百条评论&#8230; 改到眼睛都要暴出来 @_@&#160;&#160;也算是对这次转换blog程序无果的补偿吧.顺序在这里提供一下bo-blog转wordpress的程序. 给需要的朋友 :Pbo2wp.rar

]]></description>
			<content:encoded><![CDATA[<p>自从上次Dina妹子的台湾部落格被和谐, 帮她用WP架了新部落格<a href=\"http://dinalive.com/\" target=\"_blank\">Me鋪天蓋地</a>之后, 又一次被WP2.5的新版后台被诱惑到了. 于是前天花了一个通宵来鼓捣boblog到wp的数据转换. 快天亮的时候总算在本地无损地把所有日志和评论留言都转过来了. 可一想到之前所有日志的点击数和天气信息都要丢掉, 又开始舍不得boblog了, 额滴神&#8230;<br/>接着就想起几个月前也花了一整天来研究YOYO写的转换程式. 后来也是因为舍不得boblog的旧资料而作罢. 难道这就是传说中的\”好了伤疤忘了疼\”?? <img src="wp-content/bo/emot/25.gif" border="0" alt="em25" /><br/><br/>还是乖乖用boblog吧&#8230;<br/><br/>在转数据的时候, 发现以前从boblog1.7升级到2.0的时候, 之前的数据ID全都倒序排列了. 而2.0之后的数据又是正序ID排序. 虽然前台显示正常. 但是总是觉得心里不舒坦. 于是把数据倒出来, 把ID为111到0的日志重新改为 0到111, 还有每篇日志相对应的几百条评论&#8230; 改到眼睛都要暴出来 @_@&nbsp;&nbsp;也算是对这次转换blog程序无果的补偿吧.<br/><br/>顺序在这里提供一下bo-blog转wordpress的程序. 给需要的朋友 :P<br/><br/><a href="http://ohblue.com/wp-content/bo/attachment/1207529067_61957520.rar" target="_blank">bo2wp.rar</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ohblue.com/boblog-to-wordpress/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

