<?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; wordpress插件</title>
	<atom:link href="http://sheneyan.com/blog/tag/wordpress-plugin/feed/" rel="self" type="application/rss+xml" />
	<link>http://sheneyan.com/blog</link>
	<description>指穷于为薪，火传也，不知其尽也。---《养生主》</description>
	<lastBuildDate>Mon, 30 Apr 2012 09:00:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>修改插件Flickr Gallery以支持缓存</title>
		<link>http://sheneyan.com/blog/2010/11/modifing-flickr-gallery-for-cache/</link>
		<comments>http://sheneyan.com/blog/2010/11/modifing-flickr-gallery-for-cache/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 00:56:04 +0000</pubDate>
		<dc:creator>子乌</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[日记]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[wordpress插件]]></category>

		<guid isPermaLink="false">http://sheneyan.com/blog/?p=1795</guid>
		<description><![CDATA[<p>原本使用插件<a href="http://wordpress.org/extend/plugins/flickr-rss/">FlickrRSS</a>来实现flickr页面的照片缓存加展示，不过那个插件的下载似乎存在一些奇怪的问题（照片经常更新失败，而且是特定的照片更新失败，诡异地都让我快认为国外也有功夫网了……），于是再次开始寻找合适的flickr展示用插件的路程。不过可能是因为我用的关键字不对或者是老外对缓存flickr觉得没有必要（一点都不了解中国国情），基本上没看到合适的带缓存功能的flickr wordpress插件，那就只能自己改了。</p>
<p>随便找了个插件，<a href="http://wordpress.org/extend/plugins/flickr-gallery/">Flickr Gallery</a>（也不算随便找的啦，至少这个插件支持3.0.1……），研究了半天，增加了一个自动缓存文件（只缓存一次，毕竟是缓存个人照片，[......]</p><p class='read-more'><a href='http://sheneyan.com/blog/2010/11/modifing-flickr-gallery-for-cache/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>原本使用插件<a href="http://wordpress.org/extend/plugins/flickr-rss/">FlickrRSS</a>来实现flickr页面的照片缓存加展示，不过那个插件的下载似乎存在一些奇怪的问题（照片经常更新失败，而且是特定的照片更新失败，诡异地都让我快认为国外也有功夫网了……），于是再次开始寻找合适的flickr展示用插件的路程。不过可能是因为我用的关键字不对或者是老外对缓存flickr觉得没有必要（一点都不了解中国国情），基本上没看到合适的带缓存功能的flickr wordpress插件，那就只能自己改了。</p>
<p>随便找了个插件，<a href="http://wordpress.org/extend/plugins/flickr-gallery/">Flickr Gallery</a>（也不算随便找的啦，至少这个插件支持3.0.1……），研究了半天，增加了一个自动缓存文件（只缓存一次，毕竟是缓存个人照片，基本上不存在更新的问题）的函数并更新了所有调用的地方（这个插件的代码并不好看，耦合度很高，只能一处处寻找修改的地方）。</p>
<p>修改的地方太多，不一一列出具体内容，只给自己一个备忘，避免下次直接升级废掉我几个小时的劳动成果（主要是替换好累啊）：</p>
<p>0 说明一下我调用到的flickr gallery内容：我只使用了flickr gallery的最基本的gallery功能，而且没使用设定大小功能，如果使用了size的话，可能会出现问题（因为我没修改相应的代码……）。</p>
<p>1 phpFlickr.php，这个是插件的核心文件，处理了flickr的交互方法，在这个文件中增加了一个自动缓存的方法：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/* get cached image photo url by sheneyan 2010.11.13*/</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> getCachedPhotoURL<span style="color: #009900;">&#40;</span><span style="color: #000088;">$photoURL</span><span style="color: #339933;">,</span><span style="color: #000088;">$type</span><span style="color: #339933;">=</span><span style="color: #0000ff;">&quot;photo&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//这里我写死了缓存的绝对路径，请自行设定或者修改其配置页面，记得设置写权限</span>
	<span style="color: #000088;">$CACHE_PATH</span><span style="color: #339933;">=</span><span style="color: #0000ff;">'/xxx/yyy/zzz/blog/wp-content/cache'</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//md5文件名，我实在是懒得截取文件名……</span>
	<span style="color: #000088;">$cachedFileName</span> <span style="color: #339933;">=</span> <span style="color: #990000;">md5</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$photoURL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'.jpg'</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//缓存文件绝对路径，以md5首字建子目录，如果你的照片超多，可考虑多层子目录（还是一样……我懒……）</span>
	<span style="color: #000088;">$cachedFilePath</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$CACHE_PATH</span><span style="color: #339933;">.</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cachedFileName</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$cachedFileName</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//缓存文件访问链接</span>
	<span style="color: #000088;">$cachedFileURL</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/blog/wp-content/cache/'</span><span style="color: #339933;">.</span><span style="color: #990000;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cachedFileName</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">&quot;/&quot;</span><span style="color: #339933;">.</span><span style="color: #000088;">$cachedFileName</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//如果媒体类型是视频，则直接返回原来的链接</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$type</span><span style="color: #339933;">==</span><span style="color: #0000ff;">'video'</span><span style="color: #009900;">&#41;</span><span style="color: #b1b100;">return</span> <span style="color: #000088;">$photoURL</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//如果缓存文件不存在</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cachedFileName</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//读取远程文件并保存到本地（呃，临时就想到这个写法，有更简单的吗？）</span>
		<span style="color: #990000;">file_put_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$cachedFilePath</span><span style="color: #339933;">,</span><span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$photoURL</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">//返回缓存路径</span>
			<span style="color: #b1b100;">return</span> <span style="color: #000088;">$cachedFileURL</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span></pre></div></div>

<p>2 flickr-gallery.php，寻找所有的img src，将src复制一份，重命名为rel，src里面的链接套上<code style='color:green'>$phpFlickr-&gt;getCachedPhotoURL(....)</code>，rel里的链接套上<code style='color:green'>$phpFlickr-&gt;getCachedPhotoURL(....,'medium')</code>(<span class='notes'>为了放大用，如果打算看更大的图，把medium改成large</span>)，如果有设定<code style='color:green'>class="&lt;?php echo $photo['media'] ?&gt;"</code>的，则记得rel里面不要调用自定义函数(<span class='notes'>因为flickr gallery的原本的lightbox效果是直接取得原有缩略图的地址进行修改获得中等大小图片地址的，而缩略图地址已经被我md5，所以必须再提供一个新的地址供放大用，才使用了属性rel，并需要修改相应的js——见底下</span>)。</p>
<p>3 flightbox/jquery.flightbox.js 修改其中的一处：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;Javascript</div><pre class="javascript" style="font-family:monospace;">		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> options.<span style="color: #660066;">size_callback</span> <span style="color: #339933;">==</span> <span style="color: #003366; font-weight: bold;">null</span> <span style="color: #339933;">||</span> $calling.<span style="color: #660066;">hasClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;video&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			$image.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;src&quot;</span><span style="color: #339933;">,</span> $calling.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;src&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/_[stm]\./g</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span></pre></div></div>

<p>改为：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;Javascript</div><pre class="javascript" style="font-family:monospace;">		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> options.<span style="color: #660066;">size_callback</span> <span style="color: #339933;">==</span> <span style="color: #003366; font-weight: bold;">null</span> <span style="color: #339933;">||</span> $calling.<span style="color: #660066;">hasClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;video&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>$calling.<span style="color: #660066;">hasClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;video&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				$image.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;src&quot;</span><span style="color: #339933;">,</span> $calling.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;rel&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/_[stm]\./g</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;.&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
				$image.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;src&quot;</span><span style="color: #339933;">,</span> $calling.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;rel&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span></pre></div></div>

<p>其他的地方可改可不改（因为我目前只调用了最简单的flickr gallery shortcode，所以其他地方不影响到实际效果，以后有更新时再修改这篇备忘～）</p>
<p>这样就搞定了，效果见：<a href="http://sheneyan.com/blog/flickr">我的照片</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://sheneyan.com/blog/2010/11/modifing-flickr-gallery-for-cache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>简单实用的wp插件:ozh-random-words</title>
		<link>http://sheneyan.com/blog/2010/10/simple-and-useful-wp-plugin-ozh-random-words/</link>
		<comments>http://sheneyan.com/blog/2010/10/simple-and-useful-wp-plugin-ozh-random-words/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 14:08:41 +0000</pubDate>
		<dc:creator>子乌</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress插件]]></category>

		<guid isPermaLink="false">http://sheneyan.com/blog/?p=1363</guid>
		<description><![CDATA[<p><a href="http://planetozh.com/blog/my-projects/wordpress-plugin-random-words/">ozh-random-words</a>是一个很简单但是很实用的wordpress插件，它的功能很简单，就是随机输出设定好的一系列html字符串。而用途就大了，比如可以随机更换banner，随机更换广告，随机更换与访客的问候语，随机更换皮肤……<br />
例如，我想随机更换我“华丽的分割线”，我只需要在ozh-random-words的配置后台配置一系列的分割线图片html（假设这组html叫做split，具体的配置方法参见作者的说明，就上面那个链接），我只要在我的post中写下（[]之间没空格！）:</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&#160;&#160;HTML</div>[ random:split ]</div></div>

<p>然后刷新页面就会看到输[......]</p><p class='read-more'><a href='http://sheneyan.com/blog/2010/10/simple-and-useful-wp-plugin-ozh-random-words/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://planetozh.com/blog/my-projects/wordpress-plugin-random-words/">ozh-random-words</a>是一个很简单但是很实用的wordpress插件，它的功能很简单，就是随机输出设定好的一系列html字符串。而用途就大了，比如可以随机更换banner，随机更换广告，随机更换与访客的问候语，随机更换皮肤……<br />
例如，我想随机更换我“华丽的分割线”，我只需要在ozh-random-words的配置后台配置一系列的分割线图片html（假设这组html叫做split，具体的配置方法参见作者的说明，就上面那个链接），我只要在我的post中写下（[]之间没空格！）:</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;HTML</div><pre class="html4strict" style="font-family:monospace;">[ random:split ]</pre></div></div>

<p>然后刷新页面就会看到输出一个随机的分割线来(如下图，每次刷新都会变)：</p>
<p><img alt="华丽的分割线" title="华丽的分割线" src="http://sheneyan.com/image/line/line_144.gif" /></p>
<p>不过这样一来就会有一个问题，假如随机输出内容很多，那每次加载页面时速度会很慢；或者说当你不希望每次刷新时都改变输出内容（而只想一天改一次），那你可以试着像我这样对插件进行修改（这个插件上次更新是一两年前，看作者的意思除非不兼容最新版本的wordpress他就不会再更新了，所以就放心大胆地改吧~），修改ozh-random-words/wp_ozh_randomwords.php文件，增加如下函数：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">//这个函数的作用是一天生成一个缓存文件然后直接读取缓存内容，</span>
<span style="color: #666666; font-style: italic;">//这样会大大减少对超长字符串的处理。</span>
<span style="color: #009933; font-style: italic;">/**added by Sheneyan 2010.10.09**/</span>
<span style="color: #000000; font-weight: bold;">function</span> wp_ozh_randomwords_perday<span style="color: #009900;">&#40;</span><span style="color: #000088;">$input</span><span style="color: #339933;">=</span><span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$display</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//取得当前路径</span>
	<span style="color: #000088;">$self_path</span> <span style="color: #339933;">=</span> <span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/'</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//如果入参为空,直接返回空字符串</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$input</span><span style="color: #339933;">==</span><span style="color: #0000ff;">''</span><span style="color: #009900;">&#41;</span><span style="color: #b1b100;">return</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//取得缓存文件名(当前路径/入参名_当前日期)</span>
	<span style="color: #000088;">$today_cache_file</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$self_path</span><span style="color: #339933;">.</span><span style="color: #000088;">$input</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_'</span><span style="color: #339933;">.</span><span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Ymd'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//如果缓存文件不存在（不能够从文件中读出数据）</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$result</span><span style="color: #339933;">=</span><span style="color: #990000;">file_get_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$today_cache_file</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//调用原有函数取得随机字符串</span>
		<span style="color: #000088;">$result</span> <span style="color: #339933;">=</span> wp_ozh_randomwords<span style="color: #009900;">&#40;</span><span style="color: #000088;">$input</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//将随机字符串存入缓存文件中</span>
		<span style="color: #990000;">file_put_contents</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$today_cache_file</span><span style="color: #339933;">,</span><span style="color: #000088;">$result</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #666666; font-style: italic;">//昨天的缓存文件名</span>
	<span style="color: #000088;">$fn</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$self_path</span><span style="color: #339933;">.</span><span style="color: #000088;">$input</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'_'</span><span style="color: #339933;">.</span><span style="color: #990000;">date</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'Ymd'</span><span style="color: #339933;">,</span><span style="color: #990000;">strtotime</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'-1 day'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//如果昨天的缓存文件还存在，则删除（忽略错误）</span>
<span style="color: #666666; font-style: italic;">//如果担心删除文件影响性能，可以放在cron中执行或者</span>
<span style="color: #666666; font-style: italic;">//放到wordpress的定时执行中执行。</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">file_exists</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fn</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">@</span><span style="color: #990000;">unlink</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fn</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">//如果需要立刻显示则打印到屏幕，否则返回。</span>
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$display</span><span style="color: #009900;">&#41;</span>
		<span style="color: #b1b100;">print</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">else</span>
		<span style="color: #b1b100;">return</span> <span style="color: #000088;">$result</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>这样修改完后可以在模板中直接这样调用：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?=</span>wp_ozh_randomwords_perday<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'split'</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>不过如果想在post直接实用shortcode调用的话，还需要进一步修改插件源码。先增加如下函数：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> wp_ozh_randomwords_returnword_perday<span style="color: #009900;">&#40;</span><span style="color: #000088;">$input</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #666666; font-style: italic;">//直接调用刚才写的函数，记得设定不立刻显示</span>
	<span style="color: #b1b100;">return</span> wp_ozh_randomwords_perday<span style="color: #009900;">&#40;</span><span style="color: #000088;">$input</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>找到函数<code>wp_ozh_randomwords_postcontent</code>，做如下修改（在patch_start和patch_end之间的代码是新增的）：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">function</span> wp_ozh_randomwords_postcontent<span style="color: #009900;">&#40;</span><span style="color: #000088;">$input</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #666666; font-style: italic;">/* replace [random:animals] inside posts */</span>
	<span style="color: #000088;">$input</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace_callback</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/\[random:([^\]]+)\]/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;wp_ozh_randomwords_returnword&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$input</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009933; font-style: italic;">/**added by Sheneyan 2010.10.09**/</span>
<span style="color: #009933; font-style: italic;">/**patch_start*/</span>
<span style="color: #666666; font-style: italic;">//过滤shortcode randompd</span>
	<span style="color: #000088;">$input</span> <span style="color: #339933;">=</span> <span style="color: #990000;">preg_replace_callback</span> <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/\[randompd:([^\]]+)\]/&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;wp_ozh_randomwords_returnword_perday&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$input</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009933; font-style: italic;">/**patch_end*/</span>
	<span style="color: #b1b100;">return</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$input</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>经过修改，我们增加了一个新的shortcode <code>randompd</code>，只要这样调用即可（记得去掉[]前后空格）：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;HTML</div><pre class="html4strict" style="font-family:monospace;">[ randompd:split ]</pre></div></div>

<p><img alt="华丽的分割线" title="华丽的分割线" src="http://sheneyan.com/image/line/line_148.gif" /></p>
<p>如何？效果出来了吧？我页面上的Daily English也是调用这个插件生成的。</p>
<p>这个插件很简单，甚至可以说有些简陋，但是这样留给我们的运用空间就相当的大了，怎么用，就看你的了</p>
]]></content:encoded>
			<wfw:commentRss>http://sheneyan.com/blog/2010/10/simple-and-useful-wp-plugin-ozh-random-words/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>重新整理收藏夹</title>
		<link>http://sheneyan.com/blog/2010/10/rebuild-my-fav-links/</link>
		<comments>http://sheneyan.com/blog/2010/10/rebuild-my-fav-links/#comments</comments>
		<pubDate>Sat, 09 Oct 2010 06:47:34 +0000</pubDate>
		<dc:creator>子乌</dc:creator>
				<category><![CDATA[日记]]></category>
		<category><![CDATA[wordpress插件]]></category>
		<category><![CDATA[心情]]></category>
		<category><![CDATA[时间]]></category>

		<guid isPermaLink="false">http://sheneyan.com/blog/?p=1341</guid>
		<description><![CDATA[<p>重新整理以前收藏的上百个网站（如果曾经访问过我在搬家到wordpress之前的站点，应该对我的收藏夹还有些印象吧），一个个链接重新访问，然后加入到wordpress的<a href="http://sheneyan.com/blog/links/">链接</a>中，写描述，找图片，不亦乐乎。</p>
<p>觉得感慨，以前收藏的好多个人网站已经不复存在，连搜索引擎都找不到他们的身影，很多人的站已经完全改旗易帜，从免费的资源提供变成一个不知所云的公司网站，曾经在某些人那里看到满满的幸福，而现在，幸福只剩下404,留下的，依然是最早的简单的网页。</p>
<p>不断地从别人那里听到，或者不断地劝说别人：“时间是最好的良药”。但是看着时间就这么悄无声息地改变着自己，改变着别人，还是觉得可怕。再过10年，5年好了，我还是[......]</p><p class='read-more'><a href='http://sheneyan.com/blog/2010/10/rebuild-my-fav-links/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>重新整理以前收藏的上百个网站（如果曾经访问过我在搬家到wordpress之前的站点，应该对我的收藏夹还有些印象吧），一个个链接重新访问，然后加入到wordpress的<a href="http://sheneyan.com/blog/links/">链接</a>中，写描述，找图片，不亦乐乎。</p>
<p>觉得感慨，以前收藏的好多个人网站已经不复存在，连搜索引擎都找不到他们的身影，很多人的站已经完全改旗易帜，从免费的资源提供变成一个不知所云的公司网站，曾经在某些人那里看到满满的幸福，而现在，幸福只剩下404,留下的，依然是最早的简单的网页。</p>
<p>不断地从别人那里听到，或者不断地劝说别人：“时间是最好的良药”。但是看着时间就这么悄无声息地改变着自己，改变着别人，还是觉得可怕。再过10年，5年好了，我还是现在这个我吗？我也许会功成名就，但是我的心态呢？是云淡风轻还是斤斤计较？谁也不知道，知道的，只有那滚滚的历史车轮了……</p>
<p>不感慨了，继续加链接，继续看404,继续我自己的生活。</p>
<p><img src="http://sheneyan.com/blog/wp-content/uploads/2010/10/line_123.gif" alt="华丽的分割线" title="华丽的分割线"/></p>
<p>话说wordpress插件<a href="http://wordpress.org/extend/plugins/link-library/">link-gallery</a>确实不错，让我真正的把wordpress的链接功能用起来，而不只是放一些友链而已。</p>
]]></content:encoded>
			<wfw:commentRss>http://sheneyan.com/blog/2010/10/rebuild-my-fav-links/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>给wp-syntax插件增加标题</title>
		<link>http://sheneyan.com/blog/2010/10/enchance-wp-syntax/</link>
		<comments>http://sheneyan.com/blog/2010/10/enchance-wp-syntax/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 12:22:50 +0000</pubDate>
		<dc:creator>子乌</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress插件]]></category>
		<category><![CDATA[wp-syntax]]></category>

		<guid isPermaLink="false">http://sheneyan.com/blog/?p=1284</guid>
		<description><![CDATA[<p><a href="http://wordpress.org/extend/plugins/wp-syntax/">wp-syntax</a>估计是每个技术类blog都会使用的代码高亮插件（你没用？嗯……当我没说），不过却有一个小小的缺陷：没有提供标题，而这个功能在插件内使用的<a href="http://qbnz.com/highlighter/index.php">GeSHi</a>中是可以设定的，下面就简单说一下如何修改源码，让你的高亮源码块的标题头显示出高亮代码的所属语言。</p>
<p>我对源码做了三个修改：</p>
<ol>
<li>增加显示当前语言的标题栏（有兴趣的童鞋可以加上复制代码、收缩代码、打印啥的……）</li>
<li>将原来的行数标记的实现改变（原来的实现是只有当设定<code>line="1"</code>时才显示行数），当没有设定行数或者设定行数为1的时候，显示行数，当行数设置为0的时候才不显示行，这样省得我在每个代码块中加上参数<code>line="1"</code>&#8230;</li>
<li>修正[......]</li></ol><p class='read-more'><a href='http://sheneyan.com/blog/2010/10/enchance-wp-syntax/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://wordpress.org/extend/plugins/wp-syntax/">wp-syntax</a>估计是每个技术类blog都会使用的代码高亮插件（你没用？嗯……当我没说），不过却有一个小小的缺陷：没有提供标题，而这个功能在插件内使用的<a href="http://qbnz.com/highlighter/index.php">GeSHi</a>中是可以设定的，下面就简单说一下如何修改源码，让你的高亮源码块的标题头显示出高亮代码的所属语言。</p>
<p>我对源码做了三个修改：</p>
<ol>
<li>增加显示当前语言的标题栏（有兴趣的童鞋可以加上复制代码、收缩代码、打印啥的……）</li>
<li>将原来的行数标记的实现改变（原来的实现是只有当设定<code>line="1"</code>时才显示行数），当没有设定行数或者设定行数为1的时候，显示行数，当行数设置为0的时候才不显示行，这样省得我在每个代码块中加上参数<code>line="1"</code>&#8230;</li>
<li>修正了显示行数时代码不宽显示的小问题。</li>
</ol>
<h4>增加标题栏</h4>
<p>在wordpress控制台找到编辑插件的地方，编辑wp-syntax的文件<code>wp-syntax.php</code>(喜欢在直接修改源文件的就去<code>/wp-content/plugins/wp-syntax/</code>目录下找吧)，找到下列代码：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$line</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span><span style="color: #666666; font-style: italic;">//显示行数</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;table&gt;&lt;tr&gt;&lt;td class=<span style="color: #000099; font-weight: bold;">\&quot;</span>line_numbers<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> wp_syntax_line_numbers<span style="color: #009900;">&#40;</span><span style="color: #000088;">$code</span><span style="color: #339933;">,</span> <span style="color: #000088;">$line</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/td&gt;&lt;td class=<span style="color: #000099; font-weight: bold;">\&quot;</span>code<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$geshi</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">parse_code</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span>
<span style="color: #009900;">&#123;</span><span style="color: #666666; font-style: italic;">//不显示行数</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;div class=<span style="color: #000099; font-weight: bold;">\&quot;</span>code<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$geshi</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">parse_code</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/div&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>稍微修改一下：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$line</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;table&gt;&lt;tr&gt;&lt;td colspan='2' class='code_header'&gt;Language:&amp;nbsp;&amp;nbsp;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$geshi</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_language_name</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=<span style="color: #000099; font-weight: bold;">\&quot;</span>line_numbers<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> wp_syntax_line_numbers<span style="color: #009900;">&#40;</span><span style="color: #000088;">$code</span><span style="color: #339933;">,</span> <span style="color: #000088;">$line</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/td&gt;&lt;td class=<span style="color: #000099; font-weight: bold;">\&quot;</span>code<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$geshi</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">parse_code</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;div class=<span style="color: #000099; font-weight: bold;">\&quot;</span>code<span style="color: #000099; font-weight: bold;">\&quot;</span>&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;div class='code_header'&gt;Language:&amp;nbsp;&amp;nbsp;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$geshi</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">get_language_name</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/div&gt;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$geshi</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">parse_code</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">&quot;&lt;/div&gt;&quot;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>然后找到<code>wp-syntax.css</code>文件，在最后面增加一行：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;CSS</div><pre class="css" style="font-family:monospace;">.code_header<span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">font-size</span><span style="color: #00AA00;">:</span><span style="color: #933;">12px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span><span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#eee</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">border-bottom</span><span style="color: #00AA00;">:</span><span style="color: #993333;">solid</span> <span style="color: #933;">1px</span> <span style="color: #993333;">gray</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>一个很简单但我觉得还算实用的标题头就出现了（因为wp-syntax将代码的高亮展示部分完全自行实现，所以没法直接使用GeSHi的方法<code>set_header_content</code>）。</p>
<h4>默认显示行数</h4>
<p>那个啥，我觉得默认显示行数的话会更实用，因为显示行数的话看起来比较专业 <img src='http://sheneyan.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>还是刚才的<code>wp-syntax.php</code>，就在我们刚才修改的第一句：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$line</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #339933;">...</span>
<span style="color: #339933;">...</span>
<span style="color: #339933;">...</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>修改为:</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$line</span><span style="color: #339933;">||</span><span style="color: #000088;">$line</span><span style="color: #339933;">==</span><span style="color: #0000ff;">&quot;1&quot;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
<span style="color: #339933;">...</span>
<span style="color: #339933;">...</span>
<span style="color: #339933;">...</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>这样就搞定了~~下面的代码分别是设定是否显示行数的示例，看看：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;HTML</div><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">pre</span> <span style="color: #000066;">lang</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;html4strict&quot;</span> escaped<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;true&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>这个代码块我默认没提供line参数，不过依然会显示行数<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">pre</span>&gt;</span></pre></div></div>


<div class="wp_syntax"><table><tr><td colspan='2' class='code_header'>Language:&nbsp;&nbsp;HTML</td></tr><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">pre</span> <span style="color: #000066;">lang</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;html4strict&quot;</span> escaped<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;true&quot;</span> line<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;1&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>这个代码块我设定了line=&quot;1&quot;，会显示行数<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">pre</span>&gt;</span></pre></td></tr></table></div>


<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;HTML</div><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">pre</span> <span style="color: #000066;">lang</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;html4strict&quot;</span> escaped<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;true&quot;</span> line<span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;0&quot;</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span>&gt;</span>这个代码块我设定line=&quot;0&quot;，不会显示行数，
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">strong</span>&gt;</span>需要注意的是：只要是&quot;非0&quot;的值我就不显示行数！<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">strong</span>&gt;</span>，
想显示行数的话就将前面的$line==&quot;1&quot;改成$line!=&quot;0&quot;即可。<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">p</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">pre</span>&gt;</span></pre></div></div>

<p>关于上面三个demo，我有两点需要说明一下：</p>
<ol>
<li>html的lang是<strong>html4strict</strong>而不是<strong>html或htm</strong>，注意一下，否则无法高亮，标题也会显示“unknown language”，觉得不爽的童鞋可以修改一下GeSHi的声明……</li>
<li>上面的代码块我都使用了参数<code>escaped="true"</code>，这样可以让&lt;/pre>正常显示，不过需要写成<strong>&amp;lt;/pre></strong>，而且bt的wordpress的编辑器会自动帮助你把<strong>&amp;lt;</strong>修改成<strong>&lt;</strong>，写代码时要注意一下……</li>
</ol>
<h4>带行数时显示问题</h4>
<p>如果像我一样一直都没设置过line参数的话，估计都不会发现wp-syntax的这个小小bug，当代码不够宽的时候，他无法将代码内容占满整行，下面是错误图例：</p>
<p><a href="http://sheneyan.com/blog/wp-content/uploads/2010/10/wp_syntax_error.jpg" rel="lightbox[1284]" rel="shadowbox[sbpost-1284];player=img;" title="wp_syntax_error"><img src="http://sheneyan.com/blog/wp-content/uploads/2010/10/wp_syntax_error-300x73.jpg" alt="" title="wp_syntax_error" width="300" height="73" class="alignnone size-medium wp-image-1299" /></a></p>
<p>修改的方式很简单（只在chrome 6.0.472.63/ie 8/firefox 3.6.2下测试通过……不过估计只要是常规的浏览器应该没太大问题，这不涉及css hack吧 <img src='http://sheneyan.com/blog/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> ），找到刚才修改过的文件<code>wp-syntax.css</code>的如下代码：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;CSS</div><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.wp_syntax</span> table <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">border-collapse</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">collapse</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>修改为：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;CSS</div><pre class="css" style="font-family:monospace;"><span style="color: #6666ff;">.wp_syntax</span> table <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">border-collapse</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">collapse</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span><span style="color: #933;"><span style="color: #cc66cc;">100</span>%</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></div></div>

<p>好了，应该无问题了~</p>
<h4>补充说明</h4>
<p>wp-syntax的现有代码相当简洁，很好理解，如果够闲，还可以给它写一套dashboard下使用的配置界面以控制其显示的效果 <img src='http://sheneyan.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ……</p>
]]></content:encoded>
			<wfw:commentRss>http://sheneyan.com/blog/2010/10/enchance-wp-syntax/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>在AddThisChina中加入短链接功能</title>
		<link>http://sheneyan.com/blog/2010/10/integrate_yourls-into-addthischina/</link>
		<comments>http://sheneyan.com/blog/2010/10/integrate_yourls-into-addthischina/#comments</comments>
		<pubDate>Mon, 04 Oct 2010 17:48:59 +0000</pubDate>
		<dc:creator>子乌</dc:creator>
				<category><![CDATA[日记]]></category>
		<category><![CDATA[tinyurl]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress插件]]></category>

		<guid isPermaLink="false">http://sheneyan.com/blog/?p=1233</guid>
		<description><![CDATA[<p>关于2个wordpress插件的简单整合（主要是备忘用，以后插件升级后好找得到地方修改以及修改成哪个函数）：</p>
<p>插件<a href="http://addthis.org.cn/">AddThisChina</a>，一个国产的收藏按钮插件，针对国内用户提供了一些常见的分享网站连接功能。而插件<a href="http://planetozh.com/blog/my-projects/yourls-wordpress-to-twitter-a-short-url-plugin/">YOURLS: WordPress to Twitter</a>则是<a href="http://yourls.org">YOURLS</a>的wordpress插件，支持将post的地址缩短并发送到twitter，而且有提供函数输出缩短的短地址（参见其插件官方主页的。）</p>
<p>只要简单地修改一下AddThisChina的代码即可实现在其中使用短链接：</p>
<ol>
<li>在wordpress后台的插件中找到AddThisChina,点击编辑（Edit）。</li>
<li>编辑addthi[......]</li></ol><p class='read-more'><a href='http://sheneyan.com/blog/2010/10/integrate_yourls-into-addthischina/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>关于2个wordpress插件的简单整合（主要是备忘用，以后插件升级后好找得到地方修改以及修改成哪个函数）：</p>
<p>插件<a href="http://addthis.org.cn/">AddThisChina</a>，一个国产的收藏按钮插件，针对国内用户提供了一些常见的分享网站连接功能。而插件<a href="http://planetozh.com/blog/my-projects/yourls-wordpress-to-twitter-a-short-url-plugin/">YOURLS: WordPress to Twitter</a>则是<a href="http://yourls.org">YOURLS</a>的wordpress插件，支持将post的地址缩短并发送到twitter，而且有提供函数输出缩短的短地址（参见其插件官方主页的<Template Tags for you theme>。）</p>
<p>只要简单地修改一下AddThisChina的代码即可实现在其中使用短链接：</p>
<ol>
<li>在wordpress后台的插件中找到AddThisChina,点击编辑（Edit）。</li>
<li>编辑addthischina/addthis_plugin.php</li>
<li>找到代码：

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;">    <span style="color: #000088;">$addthis_u</span> <span style="color: #339933;">=</span> get_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

</li>
<li>修改为：

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;">    <span style="color: #000088;">$addthis_u</span> <span style="color: #339933;">=</span> wp_ozh_yourls_raw_url<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://sheneyan.com/blog/2010/10/integrate_yourls-into-addthischina/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Akismet的分析准确率到底多高啊？</title>
		<link>http://sheneyan.com/blog/2010/10/accuracy-rate-of-akismet/</link>
		<comments>http://sheneyan.com/blog/2010/10/accuracy-rate-of-akismet/#comments</comments>
		<pubDate>Fri, 01 Oct 2010 23:48:32 +0000</pubDate>
		<dc:creator>子乌</dc:creator>
				<category><![CDATA[日记]]></category>
		<category><![CDATA[akismet]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress插件]]></category>

		<guid isPermaLink="false">http://sheneyan.com/blog/?p=1223</guid>
		<description><![CDATA[<p><a href="http://sheneyan.com/blog/wp-content/uploads/2010/10/akismet-summary.png" rel="lightbox[1223]" rel="shadowbox[sbpost-1223];player=img;" title="akismet统计"><img src="http://sheneyan.com/blog/wp-content/uploads/2010/10/akismet-summary-300x188.png" alt="" title="akismet统计" width="300" height="188" class="alignnone size-medium wp-image-1224" /></a></p>
<p>上图是我的akismet从4月份我搬家后到现在为止的拦截记录，看着好像战果辉煌，不过从最近几次发现它乱来了好几次之后（很多朋友的正常comment也被它识别为spam，而一些伪装的比较好的spam则被它放过），我很怀疑之前那几百条的spam里误伤了多少，可惜全被wordpress干掉了，而我之前几个月时间几乎不上blog也导致我完全不知道是哪些评论被干掉了……以后还是要经常看看spam里存了都是啥，再看看wordpress的删除垃圾评论能否设置久一点的时间再删除（我估计我会间歇性地断blog XD）</p>
<p><img src="/image/line/line_111.gif" alt="华丽的分割线" title="华丽的分割线" /></p>
<p>刚才去网上搜了一下，老曾有一篇<a href="http://blogunion.org/wordpress/wordpress-tips/akismet-hack.html">blog</a>描述了如何延长Akismet删除spam的时间，不过[......]</p><p class='read-more'><a href='http://sheneyan.com/blog/2010/10/accuracy-rate-of-akismet/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://sheneyan.com/blog/wp-content/uploads/2010/10/akismet-summary.png" rel="lightbox[1223]" rel="shadowbox[sbpost-1223];player=img;" title="akismet统计"><img src="http://sheneyan.com/blog/wp-content/uploads/2010/10/akismet-summary-300x188.png" alt="" title="akismet统计" width="300" height="188" class="alignnone size-medium wp-image-1224" /></a></p>
<p>上图是我的akismet从4月份我搬家后到现在为止的拦截记录，看着好像战果辉煌，不过从最近几次发现它乱来了好几次之后（很多朋友的正常comment也被它识别为spam，而一些伪装的比较好的spam则被它放过），我很怀疑之前那几百条的spam里误伤了多少，可惜全被wordpress干掉了，而我之前几个月时间几乎不上blog也导致我完全不知道是哪些评论被干掉了……以后还是要经常看看spam里存了都是啥，再看看wordpress的删除垃圾评论能否设置久一点的时间再删除（我估计我会间歇性地断blog XD）</p>
<p><img src="/image/line/line_111.gif" alt="华丽的分割线" title="华丽的分割线" /></p>
<p>刚才去网上搜了一下，老曾有一篇<a href="http://blogunion.org/wordpress/wordpress-tips/akismet-hack.html">blog</a>描述了如何延长Akismet删除spam的时间，不过他的blog编写日期比较早，对照了一下akismet当前版本（v2.4.0），实际修改内容如下(akismet/akismet.php)：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">post_type</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'post'</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$diff</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">30</span> <span style="color: #339933;">&amp;&amp;</span> get_option<span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'akismet_discard_month'</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'true'</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$comment</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'user_ID'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span></pre></div></div>

<p>将其中的<code>$diff > 30</code>的30改为需要的数字。不过如果经常更新插件的话，最好还是和我一样，将Akismet自动删除一个月之前的spam的选项勾掉，避免误伤：</p>
<p><a href="http://sheneyan.com/blog/wp-content/uploads/2010/10/akismet-config.png" rel="lightbox[1223]" rel="shadowbox[sbpost-1223];player=img;" title="akismet配置"><img src="http://sheneyan.com/blog/wp-content/uploads/2010/10/akismet-config.png" alt="" title="akismet配置" width="489" height="199" class="alignnone size-full wp-image-1227" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://sheneyan.com/blog/2010/10/accuracy-rate-of-akismet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>13个你希望早点知道的实用WordPress SQL查询语句</title>
		<link>http://sheneyan.com/blog/2010/02/13-useful-wordpress-sql-queries-you-wish-you-knew-earlier/</link>
		<comments>http://sheneyan.com/blog/2010/02/13-useful-wordpress-sql-queries-you-wish-you-knew-earlier/#comments</comments>
		<pubDate>Sat, 06 Feb 2010 11:30:20 +0000</pubDate>
		<dc:creator>子乌</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[翻译]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress插件]]></category>
		<category><![CDATA[教程]]></category>
		<category><![CDATA[查询]]></category>

		<guid isPermaLink="false">http://sheneyan.com/blog/?p=755</guid>
		<description><![CDATA[<ul>
<li>作者： Terrance</li>
<li>译者：Sheneyan(子乌)</li>
<li>时间：2010.2.6</li>
<li>英文原文：<a href="http://www.onextrapixel.com/2010/01/30/13-useful-wordpress-sql-queries-you-wish-you-knew-earlier/" title="13 Useful WordPress SQL Queries You Wish You Knew Earlier" rel="external">13 Useful WordPress SQL Queries You Wish You Knew Earlier</a></li>
</ul>
<p class="notes">子乌注：嗯，这篇文章算是蛮实用的一篇WordPress的底层操作手册，可以让你迅速找到你想做的事情而不是在WordPress的复杂语境里迷路，随手翻译之，并存档备用。</p>
<p>WordPress的用户应该都了解，WordPress是基于MySQL数据库。然而，如果你只是刚刚从我们这里知道这一点，下面这些是你应该了解的。MySQL是一个<strong>免费的关系型数据库管理系统</strong> ，绝大多数web服务器都支持它。[......]</p><p class='read-more'><a href='http://sheneyan.com/blog/2010/02/13-useful-wordpress-sql-queries-you-wish-you-knew-earlier/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<ul>
<li>作者： Terrance</li>
<li>译者：Sheneyan(子乌)</li>
<li>时间：2010.2.6</li>
<li>英文原文：<a href="http://www.onextrapixel.com/2010/01/30/13-useful-wordpress-sql-queries-you-wish-you-knew-earlier/" title="13 Useful WordPress SQL Queries You Wish You Knew Earlier" rel="external">13 Useful WordPress SQL Queries You Wish You Knew Earlier</a></li>
</ul>
<p class="notes">子乌注：嗯，这篇文章算是蛮实用的一篇WordPress的底层操作手册，可以让你迅速找到你想做的事情而不是在WordPress的复杂语境里迷路，随手翻译之，并存档备用。</p>
<p>WordPress的用户应该都了解，WordPress是基于MySQL数据库。然而，如果你只是刚刚从我们这里知道这一点，下面这些是你应该了解的。MySQL是一个<strong>免费的关系型数据库管理系统</strong> ，绝大多数web服务器都支持它。所有的WordPress数据，如posts、评论、设置，都存储于MySQL数据库中。如果你希望对MySQL了解更多，你可以去<a href="http://codex.wordpress.org/Database_Description">WordPress的数据库描述</a>看看。</p>
<p>举个例子，如果你需要改WordPress中的一些全局的信息，那你得在每条记录里穿梭，耗费你大量的时间并且得面对发生人工错误的可能。而直接在你的WordPress数据库中简单地运行一条SQL语句，你可以让上面所说的工作变得轻松而有效率。</p>
<p>而下面就是一些能够在你使用WordPress时提供帮助的SQL语句。</p>
<h2>备份你的WordPress数据库</h2>
<p>在你对你的数据库做任何操作之前（除非你对自己的SQL执行结果很有信心），请<strong>务必备份你的数据库</strong>。在你做出任何重大的改变之前备份一下数据库是一个良好的习惯。这保证了无论数据库发生了何种错误，你总是能够将它恢复。</p>
<p>你可以下载<a href="http://wordpress.org/extend/plugins/wp-db-backup/">WP-DB-Backup</a>或<a href="http://wordpress.org/extend/plugins/wp-dbmanager/">WP-DBManager</a>插件，它们能够让你在你的WordPress面板中备份你的数据库。或者，你也可以通过phpMyAdmin来手动备份。</p>
<p>嗯，如果你决定手动备份你的WordPress数据库，跟着我做底下这些步骤：</p>
<ol>
<li>登录你的<strong>phpMyAdmin</strong>；</li>
<li>选择<strong>WordPress数据库</strong>；</li>
<li>单击顶部导航栏里的<strong>Export（导出）</strong>；</li>
<li>选择你想备份的表，或者选择所有的表来备份整个数据库；</li>
<li>导出选项选择<strong>SQL</strong>，导出为.sql后缀的文件；</li>
<li>勾选复选框“<strong>Save as file（另存为文件）</strong>” ；</li>
<li>选择compression type（压缩格式），选择<strong>gzipped</strong>，这样备份文件会小一些；</li>
<li>最后点一下Go（确定？OK？执行？），会跳一个下载窗口出来提示你保存你的备份数据库文件。</li>
</ol>
<h2>针对WordPress的13条SQL语句</h2>
<p>运行下面提供的SQL语句的简单方法当然就是使用phpMyAdmin（一般来说，有装WordPress的服务器应该都有phpMyAdmin吧？）。phpMyAdmin是一个最常用的MySQL数据库查询与编辑工具。绝大多数web服务器的控制面板都有提供这个选项。这里也有一个名为<a href="http://justinsomnia.org/2008/02/the-wordpress-sql-executioner/">WordPress SQL Executioner</a>的WordPress插件允许你执行你的SQL语句。</p>
<p>依照以下的步骤来使用phpMyAdmin：</p>
<ol>
<li><strong>登录phpMyAdmin</strong>面板并选择你的WordPress数据库。</li>
<li>单击SQL栏，进入一个带有<strong>SQL查询框</strong>的页面。</li>
</ol>
<p>你可以在如下图所示的这个SQL查询框中输入你的SQL语句。</p>
<p><img title="SQL Query Box" src="http://sheneyan.com/blog/wp-content/uploads/2010/02/sqlbox12.jpg" alt="" /></p>
<p class="notes">注：所有的语句都是单纯的SQL查询，并且假定你使用的是标准的表前缀“wp_”。 如果你使用不同的表前缀，请自行修改相应的语句。</p>
<h4>修改站点链接（Siteurl）和首页链接（Homeurl）</h4>
<p>WordPress将站点链接与首页链接的绝对路径存储于数据库中。因此，如果你将你的WordPress站点从本地主机复制到服务器上，你的站点将无法正确运行。这是因为绝对路径依然是指向你的本地主机。你需要将站点链接与首页链接修改以使站点跑起来。</p>
<p><strong>解决:</strong></p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">UPDATE</span> wp_options <span style="color: #990099; font-weight: bold;">SET</span> 
option_value <span style="color: #CC0099;">=</span> <span style="color: #000099;">replace</span><span style="color: #FF00FF;">&#40;</span>option_value<span style="color: #000033;">,</span> <span style="color: #008000;">'http://www.旧的地址.com'</span><span style="color: #000033;">,</span> <span style="color: #008000;">'http://www.新的地址.com'</span><span style="color: #FF00FF;">&#41;</span> 
<span style="color: #990099; font-weight: bold;">WHERE</span> option_name <span style="color: #CC0099;">=</span> <span style="color: #008000;">'home'</span> <span style="color: #CC0099; font-weight: bold;">OR</span> option_name <span style="color: #CC0099;">=</span> <span style="color: #008000;">'siteurl'</span><span style="color: #000033;">;</span></pre></div></div>

<h4>修改GUID</h4>
<p>当你将你的blog从本地主机移植到你的服务器或者从其他域名转移到新的域名，你需要修改表wp_posts中字段GUID的网址。如果填写错误将会造成严重错误，因为GUID用于将你的post或者页面解析为正确的链接地址。</p>
<p><strong>解决:</strong></p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">UPDATE</span> wp_posts <span style="color: #990099; font-weight: bold;">SET</span> guid <span style="color: #CC0099;">=</span> 
<span style="color: #990099; font-weight: bold;">REPLACE</span> <span style="color: #FF00FF;">&#40;</span>guid<span style="color: #000033;">,</span> <span style="color: #008000;">'http://www.oldsiteurl.com'</span><span style="color: #000033;">,</span> <span style="color: #008000;">'http://www.newsiteurl.com'</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span></pre></div></div>

<h4>修正内容中的URL</h4>
<p>当存储数据库的时候，WordPress将使用URL链接的绝对地址而非相对链接。因此你需要修正所有将指向新域名地址的链接。</p>
<p><strong>解决:</strong></p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">UPDATE</span> wp_posts <span style="color: #990099; font-weight: bold;">SET</span> post_content <span style="color: #CC0099;">=</span> 
<span style="color: #990099; font-weight: bold;">REPLACE</span> <span style="color: #FF00FF;">&#40;</span>post_content<span style="color: #000033;">,</span> <span style="color: #008000;">'http://www.oldsiteurl.com'</span><span style="color: #000033;">,</span> <span style="color: #008000;">'http://www.newsiteurl.com'</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span></pre></div></div>

<h4>只修改图片路径</h4>
<p>如果你决定使用<a href="http://aws.amazon.com/cloudfront/" title="Amazon CloudFront">Amazon CloudFront</a>作为你的内容分发网络(CDN)以减少你服务器上图片的分发量。当你创建完成你的CNAME记录，你能够使用下面的SQL语句来修改WordPress中所有图片地址，让你的图片从Amazon CloudFront中加载。</p>
<p><strong>解决:</strong></p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">UPDATE</span> wp_posts <span style="color: #990099; font-weight: bold;">SET</span> post_content <span style="color: #CC0099;">=</span> 
<span style="color: #000099;">REPLACE</span><span style="color: #FF00FF;">&#40;</span>post_content<span style="color: #000033;">,</span> <span style="color: #008000;">'src=&quot;http://www.oldsiteurl.com'</span><span style="color: #000033;">,</span> <span style="color: #008000;">'src=&quot;http://yourcdn.newsiteurl.com'</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span></pre></div></div>

<p>同时你也需要使用以下SQL更新图片附件的GUID：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">UPDATE</span> wp_posts <span style="color: #990099; font-weight: bold;">SET</span>  
guid <span style="color: #CC0099;">=</span> <span style="color: #990099; font-weight: bold;">REPLACE</span> <span style="color: #FF00FF;">&#40;</span>guid<span style="color: #000033;">,</span> <span style="color: #008000;">'http://www.oldsiteurl.com'</span><span style="color: #000033;">,</span> <span style="color: #008000;">'http://yourcdn.newsiteurl.com'</span><span style="color: #FF00FF;">&#41;</span> 
<span style="color: #990099; font-weight: bold;">WHERE</span> post_type <span style="color: #CC0099;">=</span> <span style="color: #008000;">'attachment'</span><span style="color: #000033;">;</span></pre></div></div>

<h4>更新post meta</h4>
<p>更新post meta的做法与更新post内容中的链接几乎是一样的写法。如果你在每个post中储存了额外的链接数据，你可以使用以下的语句来批量修改。</p>
<p><strong>解决:</strong></p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">UPDATE</span> wp_postmeta <span style="color: #990099; font-weight: bold;">SET</span> meta_value <span style="color: #CC0099;">=</span> 
<span style="color: #990099; font-weight: bold;">REPLACE</span> <span style="color: #FF00FF;">&#40;</span>meta_value<span style="color: #000033;">,</span> <span style="color: #008000;">'http://www.oldsiteurl.com'</span><span style="color: #000033;">,</span><span style="color: #008000;">'http://www.newsiteurl.com'</span><span style="color: #FF00FF;">&#41;</span><span style="color: #000033;">;</span></pre></div></div>

<h4>改变默认的”Admin”用户名</h4>
<p>默认的WordPress安装将会使用默认的“Admin”用户名创建一个帐户。使用WordPress的用户都知道这个。问题在于这有可能成为一个安全漏洞，因为黑客能够暴力破解你进入你的WordPress管理面板（<span class="notes">子乌注：登录时启用防spam的随机验证会好一些</span>）。如果你能够修改你默认的“Admin”用户名，你可以让你的WordPress管理面板安全一些。</p>
<p><strong>解决:</strong></p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">UPDATE</span> wp_users <span style="color: #990099; font-weight: bold;">SET</span> user_login <span style="color: #CC0099;">=</span> 
<span style="color: #008000;">'新的用户名'</span> <span style="color: #990099; font-weight: bold;">WHERE</span> user_login <span style="color: #CC0099;">=</span> <span style="color: #008000;">'Admin'</span><span style="color: #000033;">;</span></pre></div></div>

<h4>重置密码</h4>
<p>你是不是曾经试过重置你的WordPress密码，但是无论怎样都无法实现这个目标？</p>
<p><strong>解决:</strong></p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">UPDATE</span> wp_users <span style="color: #990099; font-weight: bold;">SET</span> user_pass <span style="color: #CC0099;">=</span> 
<span style="color: #000099;">MD5</span><span style="color: #FF00FF;">&#40;</span> <span style="color: #008000;">'新密码'</span> <span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">WHERE</span> user_login <span style="color: #CC0099;">=</span> <span style="color: #008000;">'你的用户名'</span><span style="color: #000033;">;</span></pre></div></div>

<h4>将作者甲的所有文章分配给作者乙</h4>
<p>如果你试着将作者甲的所有文章合并到作者乙的名下，如果你一篇文章一篇文章地修改将会是一个漫长的工作。使用下面的SQL语句（<span class="notes">为啥我看到这句话就觉得好像卖膏药的？</span>），你可以轻易地进行上述操作。</p>
<p>你首先需要在你的WordPress管理面板中访问<strong>作者与用户</strong>页面取得这两个作者的ID。单击<strong>用户名</strong>查看他们的描述。在浏览器的地址栏，找到”<strong>user_id</strong>“。这就是我们需要的作者ID信息</p>
<p><strong>解决:</strong></p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">UPDATE</span> wp_posts <span style="color: #990099; font-weight: bold;">SET</span> 
post_author <span style="color: #CC0099;">=</span> <span style="color: #008000;">'新作者id'</span> 
<span style="color: #990099; font-weight: bold;">WHERE</span> post_author <span style="color: #CC0099;">=</span> <span style="color: #008000;">'旧作者id'</span><span style="color: #000033;">;</span></pre></div></div>

<h4>删除修订</h4>
<p>当你在WordPress中编辑文章的时候，WordPress会保存你编辑文章的许多修订版。这是对资源的浪费，因为过多的修订记录会增加数据库的负担。时间一长，当你拥有成千上万条记录的时候，你的数据库将成倍增长。这将增加循环次数、数据列举，并将延长页面加载时间。</p>
<p><strong>解决:</strong></p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">DELETE</span> a<span style="color: #000033;">,</span>b<span style="color: #000033;">,</span>c <span style="color: #990099; font-weight: bold;">FROM</span> wp_posts a
<span style="color: #000099;">LEFT</span> <span style="color: #990099; font-weight: bold;">JOIN</span> wp_term_relationships b <span style="color: #990099; font-weight: bold;">ON</span> <span style="color: #FF00FF;">&#40;</span>a.ID <span style="color: #CC0099;">=</span> b.object_id<span style="color: #FF00FF;">&#41;</span>
<span style="color: #000099;">LEFT</span> <span style="color: #990099; font-weight: bold;">JOIN</span> wp_postmeta c <span style="color: #990099; font-weight: bold;">ON</span> <span style="color: #FF00FF;">&#40;</span>a.ID <span style="color: #CC0099;">=</span> c.post_id<span style="color: #FF00FF;">&#41;</span>
<span style="color: #990099; font-weight: bold;">WHERE</span> a.post_type <span style="color: #CC0099;">=</span> <span style="color: #008000;">'revision'</span></pre></div></div>

<p class="notes">源代码来自于: <a href="http://lesterchan.net/wordpress/2008/07/17/how-to-turn-off-post-revision-in-wordpress-26/">Lester chan</a></p>
<p class="notes">注: 请记住，所有post的修订都将会被删除，包括post meta。</p>
<h4>删除post meta</h4>
<p>对WordPress来说，安装或删除插件是一个非常常用的任务。一些插件会使用post meta来储存与插件有关的数据。当你删除插件的时候，这些数据将依然存在于<strong>post_meta表</strong>（即使再也不需要）。运行下列语句来清空无用的post meta值。这会有助于数据库的提速并减肥。</p>
<p><strong>解决:</strong></p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">DELETE</span> <span style="color: #990099; font-weight: bold;">FROM</span> wp_postmeta <span style="color: #990099; font-weight: bold;">WHERE</span> meta_key <span style="color: #CC0099;">=</span> <span style="color: #008000;">'你的meta key'</span><span style="color: #000033;">;</span></pre></div></div>

<h4>导出所有未重复的评论电子邮件</h4>
<p>在一段时间里，你的blog将会收到很多评论。这些评论都包含有评论者的电子邮件地址。你可以将这些电子邮件地址不重复地加入你的电子邮件列表。</p>
<p><strong>解决:</strong></p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #990099; font-weight: bold;">DISTINCT</span> comment_author_email <span style="color: #990099; font-weight: bold;">FROM</span> wp_comments<span style="color: #000033;">;</span></pre></div></div>

<p>你得到查询结果之后，可以在phpMyAdmin的标签<strong>Query results operations（查询结果操作）</strong>下，选择“导出”来<strong>导出</strong>所有的电子邮件地址。</p>
<h4>删除所有Pingback</h4>
<p>热门文章会收到大量pingback。这会增加你的数据库大小。为了给你的数据库减肥，你可以试着删除所有的pingback。</p>
<p><strong>解决:</strong></p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">DELETE</span> <span style="color: #990099; font-weight: bold;">FROM</span> wp_comments <span style="color: #990099; font-weight: bold;">WHERE</span> comment_type <span style="color: #CC0099;">=</span> <span style="color: #008000;">'pingback'</span><span style="color: #000033;">;</span></pre></div></div>

<h4>删除所有垃圾评论</h4>
<p>如果你有相当多的垃圾评论，去每个页面删除垃圾信息很乏味并让人沮丧（<span class="notes">子乌注：那你为啥不去管理面板的评论页中直接删除垃圾评论？？</span>）使用下面的SQL语句，即使面对超过500条的垃圾评论，也可以轻而易举地删除它们（<span class="notes">子乌注：只要服用了我们独家出产的大力丸，你就可以力举五牛，夜御十女，oyeah～～</span>）</p>
<p><strong>解决:</strong></p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">DELETE</span> <span style="color: #990099; font-weight: bold;">FROM</span> wp_comments <span style="color: #990099; font-weight: bold;">WHERE</span> comment_approved <span style="color: #CC0099;">=</span> <span style="color: #008000;">'spam'</span><span style="color: #000033;">;</span></pre></div></div>

<ul>
<li>0 = 等待审核的评论</li>
<li>1 = 通过审核的评论</li>
<li>spam = 标记为垃圾(spam)的评论</li>
</ul>
<h4>标识未使用的标签（tag）</h4>
<p>在WordPress数据库中，如果你使用SQL手动删除旧post，旧的标签依然会显示在你的标签云/列表中。这可以让你标识这些未使用的标签，并删除它们。</p>
<p><strong>解决:</strong></p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;MySQL</div><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> wp_terms wt
<span style="color: #990099; font-weight: bold;">INNER</span> <span style="color: #990099; font-weight: bold;">JOIN</span> wp_term_taxonomy wtt <span style="color: #990099; font-weight: bold;">ON</span> wt.term_id<span style="color: #CC0099;">=</span>wtt.term_id
<span style="color: #990099; font-weight: bold;">INNER</span> <span style="color: #990099; font-weight: bold;">JOIN</span> wp_term_relationships wtr <span style="color: #990099; font-weight: bold;">ON</span> wtr.term_taxonomy_id<span style="color: #CC0099;">=</span>wtt.term_taxonomy_id
<span style="color: #000099;">LEFT</span> <span style="color: #990099; font-weight: bold;">JOIN</span> wp_posts wp <span style="color: #990099; font-weight: bold;">ON</span> wp.ID<span style="color: #CC0099;">=</span>wtr.object_id
<span style="color: #990099; font-weight: bold;">WHERE</span> taxonomy<span style="color: #CC0099;">=</span><span style="color: #008000;">'post<span style="color: #008080; font-weight: bold;">_</span>tag'</span>
<span style="color: #CC0099; font-weight: bold;">AND</span> ID <span style="color: #CC0099; font-weight: bold;">IS</span> <span style="color: #9900FF; font-weight: bold;">null</span>
<span style="color: #CC0099; font-weight: bold;">AND</span> <span style="color: #CC0099; font-weight: bold;">NOT</span> <span style="color: #990099; font-weight: bold;">EXISTS</span><span style="color: #FF00FF;">&#40;</span><span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">From</span> wp_terms wt2
                <span style="color: #990099; font-weight: bold;">INNER</span> <span style="color: #990099; font-weight: bold;">JOIN</span> wp_term_taxonomy wtt2 <span style="color: #990099; font-weight: bold;">ON</span> wt2.term_id<span style="color: #CC0099;">=</span>wtt2.term_id <span style="color: #990099; font-weight: bold;">WHERE</span> wtt2.parent<span style="color: #CC0099;">=</span>wt.term_id<span style="color: #FF00FF;">&#41;</span> <span style="color: #990099; font-weight: bold;">ORDER BY</span> name<span style="color: #000033;">;</span></pre></div></div>

<p>源代码来自于：<a href="http://snipplr.com/view/14729/">Snipplr</a></p>
<h2>Start Querying!</h2>
<p>如果你需要进行一些性能优化、数据清理或者进行跨域的WordPress迁移，上述SQL语句将会很有用并让你事半功倍。如果你有任何<strong>针对WordPress的实用的SQL语句</strong>欢迎与我们分享（去他们的网站留言）。</p>
]]></content:encoded>
			<wfw:commentRss>http://sheneyan.com/blog/2010/02/13-useful-wordpress-sql-queries-you-wish-you-knew-earlier/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>wordpress发布长内容失败的解决方案</title>
		<link>http://sheneyan.com/blog/2009/12/solution-of-wordpress-publishing-long-post-failure/</link>
		<comments>http://sheneyan.com/blog/2009/12/solution-of-wordpress-publishing-long-post-failure/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 01:15:34 +0000</pubDate>
		<dc:creator>子乌</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[memory limit]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[server error]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress插件]]></category>
		<category><![CDATA[权限]]></category>
		<category><![CDATA[错误]]></category>

		<guid isPermaLink="false">http://sheneyan.com/blog/?p=594</guid>
		<description><![CDATA[<p>虽然之前把<a href="http://sheneyan.com/blog/2009/12/performance-optmizing-for-wp-kit-cn/" title="提升wp-kit-cn的性能">wp-kit-cn的性能提升了一些</a>，但是发布超长post时依旧会出现内存溢出问题（Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 44 bytes) &#8230;），现在实在是比较难优化了，倒是有考虑过一些控制帖子格式化的插件，这些插件起的作用就是控制是否对内容进行替换，如回车换行的替换等，但换汤不换药，32M的内存限制依旧存在。</p>
<p>我上网搜索了别人这方面的问题，还真不少（不小的老外为啥也要写这么长的post……），基本上是建议直接修改php.ini增加内存限制或修改ht[......]</p><p class='read-more'><a href='http://sheneyan.com/blog/2009/12/solution-of-wordpress-publishing-long-post-failure/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>虽然之前把<a href="http://sheneyan.com/blog/2009/12/performance-optmizing-for-wp-kit-cn/" title="提升wp-kit-cn的性能">wp-kit-cn的性能提升了一些</a>，但是发布超长post时依旧会出现内存溢出问题（<q>Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 44 bytes) &hellip;</q>），现在实在是比较难优化了，倒是有考虑过一些控制帖子格式化的插件，这些插件起的作用就是控制是否对内容进行替换，如回车换行的替换等，但换汤不换药，32M的内存限制依旧存在。</p>
<p>我上网搜索了别人这方面的问题，还真不少（不小的老外为啥也要写这么长的post……），基本上是建议直接修改php.ini增加内存限制或修改httpd.conf或者直接在.htaccess中增加一句话：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;">php_value memory_limit 64M</pre></div></div>

<p>这句话的目的在于直接改变php的内存占用上限为64M，我兴冲冲地修改了，然后垂头丧气地得到了一个500 server error错误……看来我的服务商并没给我这么高的权限，让我做这种可能危害到全服务器的行为。迫不得已，我直接修改了wordpress的两个源文件：<strong>/wp-admin/post-new.php</strong>和<strong>/wp-admin/post.php</strong>。在这两个文件的第一个require之后增加一句话：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #990000;">ini_set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'memory_limit'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'64m'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>这起的作用是一样的，也是改变php内存上限为64M，不过这个上限只存在于这个页面的生存期内，也就是不像httpd.conf和.htaccess那样影响到全局，相对来说对服务器的影响也稍微小一些，经测试也确实可行，至少目前我发33万字的内容没太大问题（自动保存草稿还是会出错，不过那个无伤大雅），只是担心wordpress对超长文本的分页是如何进行的，害怕会出现占用内存过大的情况，我试试监控服务器的内存使用，我一般也就占用8%左右，偶尔飚到10%，先这么做吧，看看服务器的负载是否能够承受，顺便再启用几个wordpress缓存插件，降低一些对内存的需求。</p>
]]></content:encoded>
			<wfw:commentRss>http://sheneyan.com/blog/2009/12/solution-of-wordpress-publishing-long-post-failure/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>wp-kit-cn中一个性能问题的调优</title>
		<link>http://sheneyan.com/blog/2009/12/performance-optmizing-for-wp-kit-cn/</link>
		<comments>http://sheneyan.com/blog/2009/12/performance-optmizing-for-wp-kit-cn/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 22:09:15 +0000</pubDate>
		<dc:creator>子乌</dc:creator>
				<category><![CDATA[日记]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress插件]]></category>
		<category><![CDATA[效率]]></category>
		<category><![CDATA[正则]]></category>
		<category><![CDATA[算法]]></category>

		<guid isPermaLink="false">http://sheneyan.com/blog/?p=562</guid>
		<description><![CDATA[<p>这几天被<a href="http://sexywp.com/wp-kit-cn.htm" rel="external" title="中文工具箱">wp-kit-cn</a>（中文工具箱，wordpress插件）的一个内存溢出问题搞得满头头皮屑……在处理大文本的时候，它原有的计算字数的算法会占用巨大的内存，基本上超过5万汉字就不用期待能够给我返回一个正确的结果。在这个插件中，它使用正则匹配的方式来取得一段文字的实际长度，代码如下：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&#160;&#160;PHP</div><span style="color: #b1b100;">return</span> <span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'%(?:
    [\x09\x0A\x0D\x20-\x7E]           # ASCII
  &#124; [\xC2-\xDF][\x80-\xBF]            # non-overlong [......]</span></div></div><p class='read-more'><a href='http://sheneyan.com/blog/2009/12/performance-optmizing-for-wp-kit-cn/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>这几天被<a href="http://sexywp.com/wp-kit-cn.htm" rel="external" title="中文工具箱">wp-kit-cn</a>（中文工具箱，wordpress插件）的一个内存溢出问题搞得满头头皮屑……在处理大文本的时候，它原有的计算字数的算法会占用巨大的内存，基本上超过5万汉字就不用期待能够给我返回一个正确的结果。在这个插件中，它使用正则匹配的方式来取得一段文字的实际长度，代码如下：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">return</span> <span style="color: #990000;">preg_match_all</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'%(?:
    [\x09\x0A\x0D\x20-\x7E]           # ASCII
  | [\xC2-\xDF][\x80-\xBF]            # non-overlong 2-byte
  |  \xE0[\xA0-\xBF][\x80-\xBF]       # excluding overlongs
  | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte
  |  \xED[\x80-\x9F][\x80-\xBF]       # excluding surrogates
  |  \xF0[\x90-\xBF][\x80-\xBF]{2}    # planes 1-3
  | [\xF1-\xF3][\x80-\xBF]{3}         # planes 4-15
  |  \xF4[\x80-\x8F][\x80-\xBF]{2}    # plane 16
  )%xs'</span><span style="color: #339933;">,</span><span style="color: #000088;">$text</span><span style="color: #339933;">,</span><span style="color: #000088;">$out</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>代码中所做的事情就是匹配所有的字符，然后只使用其中正确匹配的数目，而对匹配结果直接丢弃，而这直接代表着性能的严重损耗以及效率的降低，我翻了翻我几年前根据网上类似的代码整理出来的函数取代了它的这条语句：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #b1b100;">return</span>  <span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">preg_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;/[<span style="color: #660099; font-weight: bold;">\xc2</span>-<span style="color: #660099; font-weight: bold;">\xdf</span>][<span style="color: #660099; font-weight: bold;">\x80</span>-<span style="color: #660099; font-weight: bold;">\xbf</span>]
|<span style="color: #660099; font-weight: bold;">\xe0</span>[<span style="color: #660099; font-weight: bold;">\xa0</span>-<span style="color: #660099; font-weight: bold;">\xbf</span>][<span style="color: #660099; font-weight: bold;">\x80</span>-<span style="color: #660099; font-weight: bold;">\xbf</span>]
|[<span style="color: #660099; font-weight: bold;">\xe1</span>-<span style="color: #660099; font-weight: bold;">\xef</span>][<span style="color: #660099; font-weight: bold;">\x80</span>-<span style="color: #660099; font-weight: bold;">\xbf</span>]{2}
|<span style="color: #660099; font-weight: bold;">\xf0</span>[<span style="color: #660099; font-weight: bold;">\x90</span>-<span style="color: #660099; font-weight: bold;">\xbf</span>][<span style="color: #660099; font-weight: bold;">\x80</span>-<span style="color: #660099; font-weight: bold;">\xbf</span>]{2}
|[<span style="color: #660099; font-weight: bold;">\xf1</span>-<span style="color: #660099; font-weight: bold;">\xf7</span>][<span style="color: #660099; font-weight: bold;">\x80</span>-<span style="color: #660099; font-weight: bold;">\xbf</span>]{3}/&quot;</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;1&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$text</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>我做的事很简单：把所有的非ascii字符全部替换成1个ascii字符（就是数字1），接下来要做的就是直接算它的长度，嗯，完成了。我不知道我的这个性能如何，我只知道现在我的索引页不会再次出现<q>Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 44 bytes) &hellip;</q>之类严重的错误。</p>
]]></content:encoded>
			<wfw:commentRss>http://sheneyan.com/blog/2009/12/performance-optmizing-for-wp-kit-cn/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>post内分页及标签修改</title>
		<link>http://sheneyan.com/blog/2009/12/paged-post-and-plugin-edit/</link>
		<comments>http://sheneyan.com/blog/2009/12/paged-post-and-plugin-edit/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 20:42:03 +0000</pubDate>
		<dc:creator>子乌</dc:creator>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[html实体]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wap]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress插件]]></category>
		<category><![CDATA[函数]]></category>
		<category><![CDATA[循环]]></category>

		<guid isPermaLink="false">http://sheneyan.com/blog/?p=549</guid>
		<description><![CDATA[<p>之前闲来无事（也不是无事，只是不想干活的借口 <img src='http://sheneyan.com/blog/wp-includes/images/smilies/icon_neutral.gif' alt=':-&#124;' class='wp-smiley' />  ），做了一个专门放书的网站<a href="http://sheneyan.com/plagiarist" rel="external" title="文抄公">文抄公</a>，然后四处搜罗txt格式的书往上面直接就是一扔，扔着是爽了，可是看的时候很痛苦，为啥内？因为post内分页的问题……</p>
<p>wordpress的post内分页的实现我想很多人都知道，就是在文章内简单地插入一个&#60;!&#8211;nextpage&#8211;&#62;注释即可，然后就会看到页面下方中出现了一个个可爱的数字链接，点一点就会跳到相应的页面去，不用担心由于不停地滚动屏幕造成键盘pagedown键或者鼠标滚轮的过劳死，不过，当文章非常之长，分页非常之多的时候，将会出现如下图所示的诡异场面：</p>
<p><img src="http://sheneyan.com/blog/wp-content/uploads/2009/12/page.jpg" alt="一堆翻页" title="一堆翻页" width="528" height="139" class="alignnone size-full wp-image-550" /></p>
<p>这80多个连接还[......]</p><p class='read-more'><a href='http://sheneyan.com/blog/2009/12/paged-post-and-plugin-edit/'>继续阅读</a></p>]]></description>
			<content:encoded><![CDATA[<p>之前闲来无事（也不是无事，只是不想干活的借口 <img src='http://sheneyan.com/blog/wp-includes/images/smilies/icon_neutral.gif' alt=':-|' class='wp-smiley' />  ），做了一个专门放书的网站<a href="http://sheneyan.com/plagiarist" rel="external" title="文抄公">文抄公</a>，然后四处搜罗txt格式的书往上面直接就是一扔，扔着是爽了，可是看的时候很痛苦，为啥内？因为post内分页的问题……</p>
<p>wordpress的post内分页的实现我想很多人都知道，就是在文章内简单地插入一个&lt;!&#8211;nextpage&#8211;&gt;注释即可，然后就会看到页面下方中出现了一个个可爱的数字链接，点一点就会跳到相应的页面去，不用担心由于不停地滚动屏幕造成键盘pagedown键或者鼠标滚轮的过劳死，不过，当文章非常之长，分页非常之多的时候，将会出现如下图所示的诡异场面：</p>
<p><img src="http://sheneyan.com/blog/wp-content/uploads/2009/12/page.jpg" alt="一堆翻页" title="一堆翻页" width="528" height="139" class="alignnone size-full wp-image-550" /></p>
<p>这80多个连接还是在我将每页的内容扩大之后的结果，如果按照原来的排版，将会出现100多个连接！那么接下来要做的事，就是让我们去找插件吧 <img src='http://sheneyan.com/blog/wp-includes/images/smilies/icon_lol.gif' alt=':lol:' class='wp-smiley' />  。嗯，于是，我遇到了<a href="http://www.elektroelch.de/hacks/wp/pagebar/" rel="external" "wordpress插件pageBarV2的主页">pageBar V2</a>。应该说这个插件做的事情很简单，就是干掉多余的链接，试用过后效果还是比较显著的，至少对于正常的阅读来说，不会再担心容易点错连接的问题，效果如下图：</p>
<p><img src="http://sheneyan.com/blog/wp-content/uploads/2009/12/page1.jpg" alt="减少了一堆超链接，看着清新多了" title="减少了一堆超链接，看着清新多了" width="425" height="80" class="alignnone size-full wp-image-551" /></p>
<p>不过这个插件在使用的时候需要注意几点：</p>
<ol>
<li>
<p>它自己号称能自动插入页面，可惜的是，它自动插入的是外部页面而不是post页，如果原来已经使用了诸如wp_pagenavi的插件的话，那还是取消自动插入吧，否则你会看到街面上出现两个超链接列表，有点无所适从（而且它所谓的去除原有超链接列表的功能应该是针对wordpress最原始的那个上一页下一页的超链接而已，对wp_pagenavi并不起作用，它所谓的去除只是设置了样式表为display:none而已。)</p>
</li>
<li>
<p>需要手动修改页面模板，将原有使用的代码如：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?</span> wp_link_pages<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>替换成：</p>
<pre lang="php4 escaped="true">
< ?php if (function_exists('multipagebar'))
         multipagebar(); ?>
</pre>
<p>如果原来没有调用<code>wp_link_page()</code>的话，则可以直接插将上述代码放置在<code>the_content('......');</code>之后。</p>
</li>
</ol>
<p>在解决完正常页面下显示的问题之后，试着看了一下wap下的显示效果，结果……又看到一屏幕的超链接……由于在手机上，这么多的超链接的视觉震撼效果更加强烈。</p>
<p>由于用的是wp-t-wap插件，不大可能去直接调用pagebar，在想了一下之后，还是直接修改wp-t-wap插件吧。下面是大致的修改步骤（需要说明的是，wp-t-wap的wap实现机制是将插件中的子目录wap完全复制到系统根目录中，所以修改的时候记得修改2份，以免由于有时候禁用/启用插件而导致问题的重复出现）：</p>
<p>找到插件目录，一般是/站点地址/wp-content/plugins/wp-t-wap/，它下面会有一个子目录wap，我们要修改的内容就是其中的functions.php（wp-t-wap的实现其实就是实现一个简化版的wordpress，调用相对简单的函数而已）。找到其中的函数<code>_wap_link_pages</code>。正常情况下，需要修改部分的代码应该是长成这个样子：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$output</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$before</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$numpages</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$j</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'%'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$i</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$pagelink</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">' '</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$more</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">1</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$i</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;a href=&quot;'</span> <span style="color: #339933;">.</span> _get_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&quot;&gt;'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;a href=&quot;'</span> <span style="color: #339933;">.</span> _get_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&amp;page='</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&quot;&gt;'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$j</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$more</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
    <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;/a&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>这段代码干的活就是从1开始遍历输出所有的超链接，如果是当前页则没连接之类，一看就和wordpress默认的实现基本一致，在少数据量的情况下自然无碍，不过就不适应我的情况了。而我要做的事情很简单，留头留尾留中间，和三个点距离过远的全部掐掉，代码很简单，看看应该也会自行修改，就不废话了：</p>

<div class="wp_syntax"><div class="code"><div class='code_header'>Language:&nbsp;&nbsp;PHP</div><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$before</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$flag</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">&lt;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$numpages</span><span style="color: #339933;">+</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #000088;">$j</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'%'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">&quot;<span style="color: #006699; font-weight: bold;">$i</span>&quot;</span><span style="color: #339933;">,</span><span style="color: #000088;">$pagelink</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">abs</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">-</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;=</span><span style="color: #cc66cc;">4</span><span style="color: #339933;">||</span><span style="color: #000088;">$i</span><span style="color: #339933;">&lt;=</span><span style="color: #cc66cc;">3</span><span style="color: #339933;">||</span><span style="color: #000088;">$i</span><span style="color: #339933;">&gt;=</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$numpages</span><span style="color: #339933;">-</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">' '</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$more</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">1</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$i</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;a href=&quot;'</span> <span style="color: #339933;">.</span> _get_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&quot;&gt;'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
      <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;a href=&quot;'</span> <span style="color: #339933;">.</span> _get_permalink<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&amp;page='</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$i</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&quot;&gt;'</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #000088;">$j</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span> <span style="color: #339933;">!=</span> <span style="color: #000088;">$page</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">||</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #000088;">$more</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$page</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
    <span style="color: #000088;">$output</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'&lt;/a&gt;'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #b1b100;">else</span><span style="color: #009900;">&#123;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span><span style="color: #000088;">$page</span><span style="color: #339933;">&amp;&amp;</span><span style="color: #000088;">$flag</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$output</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">'&amp;hellip;&amp;hellip;'</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$flag</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">&gt;</span><span style="color: #000088;">$page</span><span style="color: #339933;">&amp;&amp;</span><span style="color: #000088;">$flag</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$output</span><span style="color: #339933;">.=</span><span style="color: #0000ff;">'&amp;hellip;&amp;hellip;'</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$flag</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>我在循环中判断一下当前变量<var>$i</var>的取值范围，如果变量在自己周围(<code>abs($i-$page)</code>)的9步内（前后各4个，不包括当前页）或者在头的三个范围内或者尾的三个范围内，则输出超链接，否则输出省略号&hellip;（就是我上一篇日志中苦苦寻找的html实体字符编码），并做标记，免得给我输出上百个省略号。然后，没有然后了，然后就实现了想要的功能，大功告成（记得复制到根目录的wap/下~~），最终wap效果图如下：</p>
<p><img src="http://sheneyan.com/blog/wp-content/uploads/2009/12/page2.jpg" alt="wap下的导航超链接" title="wap下的导航超链接" width="336" height="75" class="alignnone size-full wp-image-556"  style="border:solid 2px black;padding:5px;"/></p>
]]></content:encoded>
			<wfw:commentRss>http://sheneyan.com/blog/2009/12/paged-post-and-plugin-edit/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

