<?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://blog.delai.me/category/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.delai.me</link>
	<description>我的自留地</description>
	<lastBuildDate>Thu, 29 Dec 2011 03:33:58 +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>flickrRSS高阶应用三部曲之新版本flickrRss 5.0补录</title>
		<link>http://blog.delai.me/2009/03/flickrrss-50.html</link>
		<comments>http://blog.delai.me/2009/03/flickrrss-50.html#comments</comments>
		<pubDate>Wed, 25 Mar 2009 15:28:31 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[flickrRSS]]></category>
		<category><![CDATA[图片]]></category>

		<guid isPermaLink="false">http://blog.shidelai.cn/?p=794</guid>
		<description><![CDATA[因为wordpress更新的原因，flickrRSS也相应做了更新，改变了函数参数的编写方式，并加入了更易于配置的html参数。总之，更强大了，使用也更复制了。

我在flickrRSS高阶使用三部曲之二：在WordPr... ]]></description>
			<content:encoded><![CDATA[<p>因为wordpress更新的原因，flickrRSS也相应做了更新，改变了函数参数的编写方式，并加入了更易于配置的html参数。总之，更强大了，使用也更复制了。</p>
<p>我在<a title="Permanent Link: flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片" rel="bookmark" href="../2008/06/essay-photo.html">flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片</a>中提到的在文章后面显示与文章内容相关的flickr图片的功能如果不加以修改是不能使用的。拖了好几个星期，今天因为改了域名（www.shidelai.cn），所以想有个好的开始，把新的代码搞出来了，和原来的效果一样，接近完美。你可以根据我的代码加以修改成自己的代码，比如如果你的页面比较窄，那么可以把&#8217;num_items&#8217; =&gt; 8修改为&#8217;num_items&#8217; =&gt; 5等等。</p>
<p>具体方法如下：</p>
<p>将<a title="Permanent Link: flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片" rel="bookmark" href="../2008/06/essay-photo.html">flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片</a></p>
<blockquote><p>&lt;?php get_<a href="http://blog.delai.me/tag/flickrrss" class="st_tag internal_tag" rel="tag" title="Posts tagged with flickrRSS">flickrRSS</a>(8, &#8220;community&#8221;, &#8220;$first_tag&#8221;, &#8220;square&#8221;, &#8220;&amp;nbsp;&#8221;, &#8220;&amp;nbsp;&#8221;); ?&gt;</p></blockquote>
<p>修改为：</p>
<blockquote><p>&lt;?php get_flickrRSS(array(&#8216;num_items&#8217; =&gt; 8, &#8216;type&#8217; =&gt; &#8216;public&#8217;, &#8216;tags&#8217; =&gt; &#8220;$first_tag&#8221;, &#8216;html&#8217; =&gt; &#8216;&amp;nbsp;&lt;a href=&#8221;%<a href="http://blog.delai.me/tag/flickr" class="st_tag internal_tag" rel="tag" title="Posts tagged with flickr">flickr</a>_page%&#8221; title=&#8221;%title%&#8221;&gt;&lt;img src=&#8221;%image_square%&#8221; alt=&#8221;%title%&#8221;/&gt;&lt;/a&gt;&amp;nbsp;&#8217;)); ?&gt;</p></blockquote>
<p>就OK了。</p>
<h2>参数解释：</h2>
<h3>The Parameters</h3>
<p><span style="font-family: 'courier new',monospace;">&#8216;type&#8217; =&gt; &#8216;user&#8217;</span> – The type of Flickr images that you want to show. Possible values: &#8216;user&#8217;, &#8216;favorite&#8217;, &#8216;set&#8217;, &#8216;group&#8217;, &#8216;public&#8217;</p>
<p><span style="font-family: 'courier new',monospace;">&#8216;tags&#8217; =&gt; &#8221; </span>– Optional: Can be used with type = &#8216;user&#8217; or &#8216;public&#8217;, comma separated</p>
<p><span style="font-family: 'courier new',monospace;">&#8216;set&#8217; =&gt; &#8221;</span> – Optional: To be used with type = &#8216;set&#8217;</p>
<p><span style="font-family: 'courier new',monospace;">&#8216;id&#8217; =&gt; &#8221; </span>– Optional: Your Group or User ID. To be used with type = &#8216;user&#8217; or &#8216;group&#8217;</p>
<p>&#8216;<span style="font-family: 'courier new',monospace;">do_cache&#8217; =&gt; false</span> – Enable the image cache</p>
<p><span style="font-family: 'courier new',monospace;">&#8216;cache_sizes&#8217; =&gt; array(&#8216;square&#8217;) </span>– What are the image sizes we want to cache locally? Possible values: &#8216;square&#8217;, &#8216;thumbnail&#8217;, &#8216;small&#8217;, &#8216;medium&#8217; or &#8216;large&#8217;</p>
<p><span style="font-family: 'courier new',monospace;">&#8216;cache_path&#8217; =&gt; &#8221;</span> – Where the images are saved (server path)</p>
<p><span style="font-family: 'courier new',monospace;">&#8216;cache_uri&#8217; =&gt; &#8221;</span> – The URI associated to the cache path (web address)</p>
<p><span style="font-weight: bold;">Presentational params</span></p>
<p><span style="font-family: 'courier new',monospace;">&#8216;num_items&#8217; =&gt; 4</span> – The number of images that you want to display</p>
<p><span style="font-family: 'courier new',monospace;">&#8216;before_list&#8217; =&gt; &#8216;</span><span style="font-family: 'courier new',monospace;">&#8216;</span> – The HTML to print before the list of images</p>
<p><span style="font-family: 'courier new',monospace;">&#8216;html&#8217; =&gt; &#8216;&lt;a href=&#8221;%flickr_page%&#8221; title=&#8221;%title%&#8221;&gt;&lt;img src=&#8221;%image_square%&#8221; alt=&#8221;%title%&#8221;/&gt;&lt;/a</span><span style="font-family: 'courier new',monospace;">&gt;&#8217;</span> – the code to print out for each image.</p>
<p style="margin: 0px;"><span style="font-size: 10px;">Meta tags available:<span style="font-size: 13px;"> </span>%flickr_page%, %title%, %image_small%, %image_square%, %image_thumbnail%, %image_medium%, %image_large%</span></p>
<p><span style="font-family: 'courier new',monospace;">&#8216;default_title&#8217; =&gt; &#8220;Untitled Flickr photo&#8221;</span> – the default title</p>
<p><span style="font-family: 'courier new',monospace;">&#8216;after_list&#8217; =&gt; </span><span><span style="font-family: 'courier new',monospace;">&#8216;</span></span><span style="font-family: 'courier new',monospace;">&#8216;</span> – the HTML to print after the list of images</p>
<h3>Examples</h3>
<p><span style="border-collapse: collapse;"><span style="font-family: 'courier new',monospace;">&lt;?php get_flickrRSS(array(&#8216;num_items&#8217; =&gt; 4, &#8217;type&#8217; =&gt; &#8216;public&#8217;, &#8217;tags&#8217; =&gt; &#8216;sunflowers&#8217;)); ?&gt;</span> – This will display four photos from the public stream that are tagged with sunflowers</span></p>
<p><span style="font-family: 'courier new',monospace;">&lt;?php get_flickrRSS(array(&#8216;set&#8217; =&gt; &#8217;1234567890&#8242;, &#8217;num_items&#8217; =&gt; 6, &#8217;type&#8217; =&gt; &#8216;set&#8217;)); ?&gt;</span> – This will display six photos from a specified set</p>
<p>另外可以参考下本站的<a title="源码" href="http://blog.shidelai.cn/wp-content/uploads/2009/04/single.php" target="_blank">源码</a></p>
<hr /><h2>Comments</h2><ul><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html">2009-04-2</a>, <a href='http://www.olihe.com' rel='external nofollow' class='url'>盒子</a> writes: 先留言 再接着看</li><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html">2009-04-9</a>, <a href='http://www.ou9i.com/wddh/' rel='external nofollow' class='url'>淘宝网店</a> writes: 先支持下，慢慢学习~！~</li><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html">2009-04-17</a>, pc412 writes: 可不可以给个5.0的源文件？弄了半天都没效果 =（</li><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html">2009-04-17</a>, <a href='http://www.soulward.cn' rel='external nofollow' class='url'>阿德</a> writes: 放到文章后面了,右键另存为就可以了</li><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html">2009-04-18</a>, pc412 writes: 谢谢。。不过你有MSN吗？有些问题想问你 =）</li><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html">2009-04-18</a>, pc412 writes: pc412_7@hotmail.com

这是我的～</li><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html">2009-05-2</a>, <a href='http://www.soulward.cn' rel='external nofollow' class='url'>阿德</a> writes: 俺比较低端，都没用MSN。。。 我去下一个再加你。。， 不好意思回得有点晚</li><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html">2010-03-22</a>, <a href='http://www.eureka321.com' rel='external nofollow' class='url'>Eureka</a> writes: 你好 我用了flickrRSS后一行只能显示一张图片 怎么才能想你的边栏一样一行显示3张？谢谢！</li><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html">2010-03-23</a>, <a href='http://www.shidelai.cn' rel='external nofollow' class='url'>阿德</a> writes: 是不是本来就只有4张照片呀？</li><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html">2010-03-23</a>, <a href='http://www.eureka321.com' rel='external nofollow' class='url'>Eureka</a> writes: 请看一下www.eureka321.com 我设置显示六张照片 但只能单列显示 我希望一行能显示三张</li><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html">2010-03-25</a>, <a href='http://www.shidelai.cn' rel='external nofollow' class='url'>阿德</a> writes: 我右边栏上面8张照片也是单列显示的，是不是用widget显示这些照片的啊？
下面6张照片分两行，每行3张是将flickrRSS的代码放到siderbar.php里才达到的效果。</li><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html">2010-03-25</a>, <a href='http://www.eureka321.com' rel='external nofollow' class='url'>Eureka</a> writes: 哦 原来如此 谢谢谢谢</li></ul><hr /><h2>Related posts:</h2><ul><li><a href="http://blog.delai.me/2008/06/how-to-flickrrss.html" rel="bookmark" title="Permanent Link: flickrRSS高阶使用三部曲之一：显示flickr上的图片">flickrRSS高阶使用三部曲之一：显示flickr上的图片</a></li><li><a href="http://blog.delai.me/2008/07/gravatars2-flickrrss.html" rel="bookmark" title="Permanent Link: flickrRSS高阶使用三部曲之三：配合Gravatar2让flickr的图片作为WordPress留言的随机头像">flickrRSS高阶使用三部曲之三：配合Gravatar2让flickr的图片作为WordPress留言的随机头像</a></li><li><a href="http://blog.delai.me/2008/06/essay-photo.html" rel="bookmark" title="Permanent Link: flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片">flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片</a></li></ul><hr /><strong>[原文链接：<a href="http://blog.delai.me/2009/03/flickrrss-50.html">http://blog.delai.me/2009/03/flickrrss-50.html</a>] </strong>]]></content:encoded>
			<wfw:commentRss>http://blog.delai.me/2009/03/flickrrss-50.html/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>不同浏览器里图片大小不同的解决方法</title>
		<link>http://blog.delai.me/2008/12/photo-css-max.html</link>
		<comments>http://blog.delai.me/2008/12/photo-css-max.html#comments</comments>
		<pubDate>Tue, 23 Dec 2008 14:39:43 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[图片]]></category>
		<category><![CDATA[浏览器]]></category>

		<guid isPermaLink="false">http://www.soulward.cn/?p=630</guid>
		<description><![CDATA[我之前写过flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片，后来发现一个问题：原本图片大小这个参数选择square的话，显示的应该是几张75×75的图片，这在firefox... ]]></description>
			<content:encoded><![CDATA[<a href='http://blog.delai.me/2008/12/photo-css-max.html' target="_blank" rel="nofollow"><img src="http://blog.shidelai.cn/wp-content/gallery/icons/wordpress.jpg" style="border:0; float:left; margin: 0 1em .5em 0;" alt="不同浏览器里图片大小不同的解决方法" title="不同浏览器里图片大小不同的解决方法"/></a>
<p>我之前写过<a title="Permanent Link to flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片" rel="bookmark" href="../2008/06/essay-photo.html">flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片</a>，后来发现一个问题：原本图片大小这个参数选择square的话，显示的应该是几张75×75的图片，这在firefox里面一直是正常的，但IE里面就不是这样了，很多图片会被放大，影响总体效果。</p>
<p>前些天偶尔翻CSS手册，看到max-height属性，心想这正好可以解决这个问题。解决方法如下：</p>
<p>修改css文件添加如下代码：</p>
<blockquote><p>#related-pic img {<br />
max-height:75px;<br />
max-width:75px;<br />
width: expression( this.width&gt; 75 ? &#8220;75px&#8221; : (this.width+&#8221;px&#8221;) );<br />
height: expression( this.height&gt; 75 ? &#8220;75px&#8221; : (this.height+&#8221;px&#8221;) );<br />
}</p></blockquote>
<p>意思就是说，在id为related-pic的容器里面，<a href="http://blog.delai.me/tag/%e5%9b%be%e7%89%87" class="st_tag internal_tag" rel="tag" title="Posts tagged with 图片">图片</a>(img)的最大宽度和长度是75px，如果发现宽度或长度大于75的，就改成75，如果小于75的就大小不变。</p>
<p>然后在single.php中出现75×75的图片的地方用id为related-pic的容器括进去就可以了：</p>
<blockquote><p>&lt;b&gt;[相关图片]&lt;/b&gt;&lt;br /&gt;<br />
&lt;div id=&#8221;related-pic&#8221;&gt;<br />
&lt;?php get_<a href="http://blog.delai.me/tag/flickrrss" class="st_tag internal_tag" rel="tag" title="Posts tagged with flickrRSS">flickrRSS</a>(8, &#8220;community&#8221;, &#8220;$first_tag&#8221;, &#8220;square&#8221;, &#8220;&amp;nbsp;&#8221;, &#8220;&amp;nbsp;&#8221;); ?&gt;<br />
&lt;/div&gt;</p></blockquote>
<p>这样，IE的显示就正常了。你当然也可以把上面这段CSS代码这届嵌入到HTML代码里面，如:</p>
<blockquote><p>&lt;div style=&#8221;css code&#8221;&gt;<br />
&lt;?php get_flickrRSS(8, &#8220;community&#8221;, &#8220;$first_tag&#8221;, &#8220;square&#8221;, &#8220;&amp;nbsp;&#8221;, &#8220;&amp;nbsp;&#8221;); ?&gt;<br />
&lt;/div&gt;</p></blockquote>
<p>类似的， 你也可以设定文章内容中图片的最大宽度，以免不小心用了太大的图，把页面撑得面目全非。</p>
<hr /><h2>Comments</h2><ul><li><a href="http://blog.delai.me/2008/12/photo-css-max.html">2009-01-18</a>, aibenwu writes: 博主你好，我想问您一下。我在Google Blogger 开的博客。在Chrome,火狐显示图片是正常的。但是在IE，傲游上显示的图片间隔变小，而挤在一起。让我很困扰。请问博主应该怎么解决这个问题呢？谢谢</li><li><a href="http://blog.delai.me/2008/12/photo-css-max.html">2009-01-20</a>, <a href='http://www.soulward.cn' rel='external nofollow' class='url'>阿德</a> writes: Blogger我没用过，如果能编辑HTML的话，你在图片之间加入代表空格的HTML代码， &nbsp;
貌似也只能这样了，
或者在HTML里面嵌入CSS代码，如我我文中最后一个例子</li></ul><hr /><h2>Related posts:</h2><ul><li><a href="http://blog.delai.me/2008/06/essay-photo.html" rel="bookmark" title="Permanent Link: flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片">flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片</a></li><li><a href="http://blog.delai.me/2008/07/gravatars2-flickrrss.html" rel="bookmark" title="Permanent Link: flickrRSS高阶使用三部曲之三：配合Gravatar2让flickr的图片作为WordPress留言的随机头像">flickrRSS高阶使用三部曲之三：配合Gravatar2让flickr的图片作为WordPress留言的随机头像</a></li><li><a href="http://blog.delai.me/2008/04/firefox-logo-in-deep-space.html" rel="bookmark" title="Permanent Link: Firefox Logo Spied In Deep Space(火狐标志在宇宙深处出现）">Firefox Logo Spied In Deep Space(火狐标志在宇宙深处出现）</a></li><li><a href="http://blog.delai.me/2008/11/zju-bachelor-2.html" rel="bookmark" title="Permanent Link: 11月11号，实验室团购了11件纪念浙大建校111周年的光棍衫">11月11号，实验室团购了11件纪念浙大建校111周年的光棍衫</a></li><li><a href="http://blog.delai.me/2008/08/photo-record.html" rel="bookmark" title="Permanent Link: 图片&#038;记录">图片&#038;记录</a></li></ul><hr /><strong>[原文链接：<a href="http://blog.delai.me/2008/12/photo-css-max.html">http://blog.delai.me/2008/12/photo-css-max.html</a>] </strong>]]></content:encoded>
			<wfw:commentRss>http://blog.delai.me/2008/12/photo-css-max.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress运行原理学习笔记之二：插件机制初探</title>
		<link>http://blog.delai.me/2008/07/plugins.html</link>
		<comments>http://blog.delai.me/2008/07/plugins.html#comments</comments>
		<pubDate>Tue, 15 Jul 2008 12:18:21 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[加载]]></category>
		<category><![CDATA[原理]]></category>
		<category><![CDATA[学习笔记]]></category>
		<category><![CDATA[工作]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[显示]]></category>
		<category><![CDATA[机制]]></category>
		<category><![CDATA[运行]]></category>

		<guid isPermaLink="false">http://www.soulward.cn/?p=234</guid>
		<description><![CDATA[Wordpress的插件机制使得开发者可以方便地向系统添加自己需要的功能，而这是使得Wordpress得以在全世界流行的重要原因。一个 WordPress插件是一个程序,或者是用PHP脚本语言写出的一个或一些函数... ]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="Permanent Link to WordPress运行原理学习笔记之一：主题机制初探" rel="bookmark" href="../2008/07/theme.html">WordPress运行原理学习笔记之一：主题机制初探</a></p>
<p style="text-align: center;"><a title="Permanent Link to WordPress运行原理学习笔记之二：插件机制初探" rel="bookmark" href="../2008/07/plugins.html">WordPress运行原理学习笔记之二：插件机制初探</a></p>
<p>WordPress的插件机制使得开发者可以方便地向系统添加自己需要的功能，而这是使得Wordpress得以在全世界流行的重要原因。一个 WordPress插件是一个程序,或者是用PHP脚本语言写出的一个或一些函数的集合，用来往WordPress Webblog 里增加一些特定的特征和服务，它们可以通过WordPress的 Plugin Application Program Interface (API) 提供的接入点和函数无缝的集成到Webblog里.</p>
<p>插件机制的实现主要依靠wp-includes目录下的plugin.php文件，该文件中包含了与插件机制相关的几个函数。在 wordpress内核运行时设立了一些标记(tag)，当遇到这些标记时，wordpess会自动调用挂载到 (hook to)这个标记上的所有函数，该功能是通过数组来实现的，其过程可以直观的表示为下图：</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-235 aligncenter" title="plugins" src="http://blog.shidelai.cn/wp-content/uploads//2008/07/plugins.png" alt="" width="385" height="224" /></p>
<p><strong><span style="color: #ff0000;">插件hook原理</span></strong></p>
<p>用户可以通过plugin API方便的将自定义的功能添加到系统相应的位置。需要指出的是：wordpress定义了两种类型的插件API，行为(actions)和过滤器 (filters)：<!--inline-more--></p>
<p>Actions: Actions are the hooks that the <a href="http://blog.delai.me/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Posts tagged with wordpress">WordPress</a> core launches at specific points during execution, or when specific events occur. Your plugin can specify that one or more of its PHP functions are executed at these points, using the Action API.</p>
<p>Actions 是由WordPress内核在执行过程中的特定的点或者特定的事件发生时调用的. 使用这些Action API,你的plugin可以指定在这些点去执行一个或者多个PHP函数.</p>
<p>Filters: Filters are the hooks that WordPress launches to modify text of various types before adding it to the database or sending it to the browser screen. Your plugin can specify that one or more of its PHP functions is executed to modify specific types of text at these times, using the Filter API.</p>
<p>Filters是一种hooks,由WordPress调用,针对于各种形式的文本,让它们在进入数据或发送到浏览器之前得到调整. 使用Filter API,你的插件可以指定在某个时间执行一个或者多个PHP函数来修改特定类型的文本.</p>
<h4><strong>一、一个最简单的插件的开发过程</strong></h4>
<p>下面以<a href="http://blog.shidelai.cn" target="_blank">阿德</a>弄的一个a_simple_song插件(其实跟自带的那个插件是一样的，只是修改了歌词而已)为例简述整个过程三个步骤：编写插件要执行的代码，添加add_action()，进入后台激活它。<br />
该插件的功能是：在WordPress后台左上角随机显示《一首简单的歌》这首歌的歌词。<br />
<strong>1．</strong>在wordpress目录/wp-content/plugins/下新建一个文件：a_simple_song。<br />
<strong>2．</strong>用文本编辑工具打开它，输入&lt;?php    ?&gt;，接下来的工作就是在这里面填写相应PHP代码。<br />
<strong>3．</strong>首先按一定的格式编写本插件的一些信息，WordPress读取它用于在后台显示，方便用户查看：</p>
<blockquote><p>/*<br />
Plugin Name: 一首简单的歌<br />
Plugin URI: http://blog.shidelai.cn/#<br />
Description: 这个插件会在后台随机显示《一首简单的歌》的歌词。<br />
Author: 施德来<br />
Version: 1.0<br />
Author URI: http://blog.shidelai.cn<br />
*/</p></blockquote>
<p><strong>4．</strong>编写要执行的操作：<br />
$lyrics = &#8220;一首简单的歌    //定义了一个字符串数组用于存储歌词<br />
这世界很复杂<br />
&#8230;&#8230;&#8230;<br />
你是我最珍贵的财富&#8221;;<br />
$lyrics = explode(&#8220;\n&#8221;, $lyrics);<br />
//explode()是PHP内置函数，功能就是分割字符串成字符数组<br />
$chosen = wptexturize( $lyrics[ mt_rand(0, count($lyrics) - 1) ] );<br />
/*<br />
给chosen赋一条随机的歌词<br />
wptexturize()在wp-includes\functions-formatting.php定义，功能：把某些特殊符号给自动转换化成标准码格式。<br />
mt_rand()函数返回它2个参数之间的随机值<br />
count()返回数组大小<br />
*/<br />
function a_simple_song() {<br />
global $chosen;<br />
echo &#8220;&lt;p id=&#8217;dolly&#8217;&gt;$chosen&lt;/p&gt;&#8221;;<br />
}<br />
//dolly样式表由后面定义。<br />
//显示歌词<br />
<strong>5．</strong>添加add_action()，将a_simple_song函数hook到main_foot tag的队列中<br />
add_action(&#8216;admin_footer&#8217;, &#8216;a_simple_song&#8217;);<br />
//admin_footer.php被调用时执行这个函数<br />
add_action(&#8216;admin_head&#8217;, &#8216;dolly_css&#8217;);<br />
//admin_head.php被调用时执行dolly_css()<br />
具体经过请参考下面的从源码解读a_simple_song插件的调用过程。</p>
<p>这样，保存为.php文件方到plugins文件夹下面，再到后台激活就可以了。效果如图</p>
<p><a href="http://blog.shidelai.cn/wp-content/uploads//2008/07/123.png"><img class="alignnone size-medium wp-image-237" title="123" src="http://blog.shidelai.cn/wp-content/uploads//2008/07/123-300x172.png" alt="" width="300" height="172" /></a></p>
<h4><strong>二、WordPress对所有可用的插件的读取</strong></h4>
<p>在文件/wordpress/wp-admin/plugins.php中，函数<br />
&lt;?php function get_plugins() ?&gt;<br />
用来从文件系统得到所有的插件。原理很简单，就是读取&#8217;wp-content/plugins&#8217;目录下的所有PHP文件。这个函数允许一级的子文件夹，也就是说在&#8217;wp-content/plugins&#8217;下面的PHP文件，以及所以在此目录下的一级子文件夹内部的PHP文件被列作插件的候选，用下面的函数去进一步提取插件信息。这样的好处是方便用户利用文件夹来对插件进行管理和组织。</p>
<blockquote><p>foreach($plugins as $plugin_file =&gt; $plugin_data) {<br />
&#8230;..<br />
$plugin_data['Title']       = wp_kses($plugin_data['Title'], $plugins_allowedtags);<br />
$plugin_data['Version']     = wp_kses($plugin_data['Version'], $plugins_allowedtags);<br />
$plugin_data['Description'] = wp_kses($plugin_data['Description'], $plugins_allowedtags);<br />
$plugin_data['Author']      = wp_kses($plugin_data['Author'], $plugins_allowedtags);<br />
$author = ( empty($plugin_data['Author']) ) ? &#8221; :  &#8216; &lt;cite&gt;&#8217; . sprintf( __(&#8216;By %s&#8217;), $plugin_data['Author'] ) . &#8216;.&lt;/cite&gt;&#8217;;<br />
&#8230;.<br />
}</p></blockquote>
<p>用于从插件的头部注释中获取插件的版本、名称、作者，等信息。</p>
<h4><strong>三、Active &amp; Deactive Plugin（插件的激活与注销）</strong></h4>
<p>Active（Deactive）插件的操作都在Plugins.php中，比如我要ple_Deactive &#8220;a_simsong&#8221;这个插件，最后的URL其实是这个样子：</p>
<p>http://localhost/wordpress/wp-admin/plugins.php?action=deactivate&#038;plugin=a_simple_song.php&#038;_wpnonce=242c8cc3e5</p>
<p>其中，&#8221;Action&#8221;表示动作，值为&#8221;active&#8221;或者&#8221;deactivate&#8221;，而&#8221;Plugin&#8221;表示动作的对象插件，此处为&#8221;a_simple_song.php&#8221;。得到动作指令后，首先从数据库中取出当前已经激活的插件。</p>
<p>$active = get_option(&#8216;active_plugins&#8217;);</p>
<p>然后根据动作，重新生成已激活插件数组，和theme一样存入数据库，并重新加载此页。加载的时候就需要考虑这些已经激活的插件是怎么工作的了。</p>
<h4><strong>四、插件的加载过程</strong></h4>
<p>WordPress中的每页都会包含&#8221;wp-config.php&#8221;文件，而在&#8221;wp-config.php&#8221;的最后有这样一句：</p>
<blockquote><p>&lt;?php require_once(ABSPATH.&#8217;wp-settings.php&#8217;); ?&gt;</p></blockquote>
<p>在&#8221;wp-settings.php&#8221;文件中，可以找到以下与插件相关的代码片断：</p>
<blockquote><p>if ( get_option(&#8216;active_plugins&#8217;) ) {<br />
$current_plugins = get_option(&#8216;active_plugins&#8217;);<br />
if ( is_array($current_plugins) ) {<br />
foreach ($current_plugins as $plugin) {<br />
if (&#8221; != $plugin &amp;&amp; file_exists(ABSPATH . PLUGINDIR . &#8216;/&#8217; . $plugin))<br />
include_once(ABSPATH . PLUGINDIR . &#8216;/&#8217; . $plugin);<br />
}<br />
}<br />
}</p></blockquote>
<p>可见，这段代码会取出系统中所有Actived的插件，并Include进来。所以在每页加载的时候，都会首先Include这些插件代码。这也就是为什么在主题模板里面可以直接调用插件的函数。</p>
<h4><strong>五、WordPress通过插件机制注册系统事件</strong></h4>
<p>WordPress中的很多功能也都是通过这种插件结构来实现的，WordPress默认注册的系统事件保存在default-filter.php中。比如：<br />
&lt;?php add_filter(&#8216;the_content&#8217;, &#8216;convert_smilies&#8217;); ?&gt;<br />
用来将正文（content）中的笑脸符号转换为图像。<br />
add_filter(&#8216;comment_text&#8217;, &#8216;wptexturize&#8217;);<br />
用来将从数据库提取的正文中的特殊符号转化成标准格式的。</p>
<h4><strong>六、从源码解读a_simple_song插件的调用过程</strong></h4>
<p>在每一个wordpress/wp-admin/下面的文件（也就是后台显示需要的文件）的前面都有</p>
<blockquote><p>&lt;?php require_once(&#8216;admin-header.php&#8217;); ?&gt;</p></blockquote>
<p>而在&#8221;admin-head.php&#8221;中将会执行扩展点&#8221;admin_head&#8221;的所有扩展：</p>
<blockquote><p>&lt;?php  do_action(&#8216;admin_head&#8217;, &#8221;); ?&gt;</p></blockquote>
<p>这样，就会执行所有hook到admin_head上的函数<br />
Admin Page的Footer部分同样如此，</p>
<blockquote><p>&lt;?php do_action(&#8216;admin_footer&#8217;, &#8221;); ?&gt;</p></blockquote>
<p>这样，就会执行所有挂接到admin_footer的函数</p>
<p>a_simple_song里面有这么2行代码：</p>
<blockquote><p>add_action(&#8216;admin_footer&#8217;, &#8216;a_simple_song&#8217;);<br />
add_action(&#8216;admin_head&#8217;, &#8216;dolly_css&#8217;);</p></blockquote>
<p>将控制形式和内容2个函数挂到不同的tag上，控制文字显示位置和样式的dolly_css是先被调用，然后admin_foot.php被调用一次，a_simplesong()也就被调用一次，来显示歌词。</p>
<hr /><h2>Comments</h2><ul><li><a href="http://blog.delai.me/2008/07/plugins.html">2008-07-15</a>, <a href='http://www.soulward.cn/2008/07/theme.html' rel='external nofollow' class='url'>WordPress运行原理学习笔记之一：主题机制初探 @ 阿德日志 ( wordpress, 加载, 原理, 学习笔记, 主题, )</a> writes: [...] hook到tag＝&#8217;home_template&#8217;的filters上并返回$template，也就是主题包的路径。 [...]</li><li><a href="http://blog.delai.me/2008/07/plugins.html">2008-08-3</a>, <a href='http://www.nnsg.cn/?p=89' rel='external nofollow' class='url'>WordPress运行原理学习笔记之一：主题机制初探 at 政霖书阁</a> writes: [...] 其中apply_filters()的作用是：将$template hook到tag＝’home_template’的filters上并返回$template，也就是主题包的路径。2、有require_once(ABSPATH . WPINC . ‘/template-loader.php’);调用了.／wp-includes/template-loader.php（ABSPATH代表./， WPINC代表/wp-includes）。而.／wp-includes/template-loader.php中有： [...]</li><li><a href="http://blog.delai.me/2008/07/plugins.html">2008-08-3</a>, <a href='http://www.nnsg.cn/?p=91' rel='external nofollow' class='url'>WordPress运行原理学习笔记之二：插件机制初探 at 政霖书阁</a> writes: [...] Posted by 政霖 on 07月 31st, 2008. Filed in WORDPRESS, wordpress设置 WordPress运行原理学习笔记之二：插件机制初探 [...]</li><li><a href="http://blog.delai.me/2008/07/plugins.html">2008-08-9</a>, <a href='http://www.nnsg.cn/index.php/wordpres-plugins-study' rel='external nofollow' class='url'>WordPress运行原理学习笔记之二：插件机制初探 &raquo; 政霖书阁</a> writes: [...] WordPress运行原理学习笔记之二：插件机制初探 [...]</li><li><a href="http://blog.delai.me/2008/07/plugins.html">2008-08-9</a>, <a href='http://www.nnsg.cn/index.php/wordpress-study-theme' rel='external nofollow' class='url'>WordPress运行原理学习笔记之一：主题机制初探 &raquo; 政霖书阁</a> writes: [...] hook到tag＝’home_template’的filters上并返回$template，也就是主题包的路径。 [...]</li><li><a href="http://blog.delai.me/2008/07/plugins.html">2009-03-14</a>, <a href='http://it.iandy.info/?p=269' rel='external nofollow' class='url'>&nbsp; WordPress运行原理学习笔记之一：主题机制初探&nbsp;by&nbsp;Andy&#8217;s IT</a> writes: [...] hook到tag＝’home_template’的filters上并返回$template，也就是主题包的路径。 [...]</li><li><a href="http://blog.delai.me/2008/07/plugins.html">2009-12-15</a>, <a href='http://www.cyanfoto.com/2009/12/wordpress%e8%bf%90%e8%a1%8c%e5%8e%9f%e7%90%86%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%e4%b9%8b%e4%b8%80%ef%bc%9a%e4%b8%bb%e9%a2%98%e6%9c%ba%e5%88%b6%e5%88%9d%e6%8e%a2/' rel='external nofollow' class='url'>cyanfoto &raquo; Blog Archive &raquo; WordPress运行原理学习笔记之一：主题机制初探</a> writes: [...] hook到 tag＝’home_template’的filters上并返回$template，也就是主题包的路径。 [...]</li></ul><hr /><h2>Related posts:</h2><ul><li><a href="http://blog.delai.me/2010/03/douban-rank-8.html" rel="bookmark" title="Permanent Link: 独家发布豆瓣8分以上图书列表">独家发布豆瓣8分以上图书列表</a></li><li><a href="http://blog.delai.me/2008/07/theme.html" rel="bookmark" title="Permanent Link: WordPress运行原理学习笔记之一：主题机制初探">WordPress运行原理学习笔记之一：主题机制初探</a></li></ul><hr /><strong>[原文链接：<a href="http://blog.delai.me/2008/07/plugins.html">http://blog.delai.me/2008/07/plugins.html</a>] </strong>]]></content:encoded>
			<wfw:commentRss>http://blog.delai.me/2008/07/plugins.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>WordPress运行原理学习笔记之一：主题机制初探</title>
		<link>http://blog.delai.me/2008/07/theme.html</link>
		<comments>http://blog.delai.me/2008/07/theme.html#comments</comments>
		<pubDate>Tue, 15 Jul 2008 11:32:45 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[主题]]></category>
		<category><![CDATA[加载]]></category>
		<category><![CDATA[原理]]></category>
		<category><![CDATA[学习笔记]]></category>

		<guid isPermaLink="false">http://www.soulward.cn/?p=233</guid>
		<description><![CDATA[一、主题包各文件说明：
二、从源码看主题的调用过程
三、主题被调用后，首页的加载过程

各个页面的加载过程大致相同，下面以首页为例说明。显示首页的时候，Wordpress只调用index.php，... ]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a title="Permanent Link to WordPress运行原理学习笔记之一：主题机制初探" rel="bookmark" href="../2008/07/theme.html">WordPress运行原理学习笔记之一：主题机制初探</a></p>
<p style="text-align: center;"><a title="Permanent Link to WordPress运行原理学习笔记之二：插件机制初探" rel="bookmark" href="../2008/07/plugins.html">WordPress运行原理学习笔记之二：插件机制初探</a></p>
<h4><strong>一、主题包各文件说明</strong></h4>
<p>header.php：这个文件中包含博客的标题（title），描述（description），tag，以及css等信息。<br />
sidebar.php：这个文件控制你侧边栏中的显示方式。<br />
footer.php：控制页面底部的显示，包括ICP，版权声明等信息。<br />
archive.php：被系统调用用于显示用户提交分类，按日期归档，tag等查询后显示的页面。下面代码显示了archive.php内部是如何辨别不同的查询请求的：</p>
<blockquote><p>&lt;?php if (is_category()) { ?&gt;<br />
&lt;div class=&#8221;pagetitle&#8221;&gt;‘&lt;?php single_cat_title(); ?&gt;’ 分类下的文章&lt;/div&gt;<br />
&lt;!&#8211;显示下面是哪个分类下的文章列表,‘ ’ 分别是左右单引号,下同&#8211;&gt;<br />
&lt;?php }    elseif( is_tag() ) { ?&gt;<br />
&lt;div class=&#8221;pagetitle&#8221;&gt;‘&lt;?php single_tag_title(); ?&gt;’ 标签下的文章&lt;/div&gt;<br />
&#8230;&#8230;&#8230;&#8230;<br />
&lt;?php } elseif (isset($_GET['paged']) &amp;&amp; !empty($_GET['paged'])) { ?&gt;&lt;div class=&#8221;pagetitle&#8221;&gt;日志归档&lt;/div&gt;<br />
&lt;?php } ?&gt;</p></blockquote>
<p>search.php：用于显示用户提交搜索后显示的页面。<br />
searchform.php：搜索栏表单，被header.php调用。<br />
single.php：用于全文显示post页面。<br />
page.php：用于全文显示page页面。<br />
function.php：存放自定义的函数，被其他文件包含和调用。<br />
comments.php：留意评论模板，被single.php，page.php等需要评论功能的网页调用。<br />
style.css：整个网站布局和显示模式。<br />
screenshot.jpg：用于在后台选择主题页面里显示这个主题的截图，wordpress会自动在主题目录下寻找screenshot.*文件。</p>
<h4><strong>二、从源码看主题的调用过程</strong></h4>
<p><!--inline-more-->当浏览器向apache发送请求要得到博客主页的HTML代码时，./index.php被调用。./index.php中的require(&#8216;./wp-blog-header.php&#8217;);调用./wp-blog-header.php。<br />
而./wp-blog-header.php做了一些链接数据库包含头文件等处理，其中有两件事情与主题调用有关：<br />
<strong>1、</strong>有require_once( dirname(__FILE__) ./wp-includes/functions.php&#8217;);<br />
而/wp-includes/functions.php中包含进了./wp-includes/theme.php，这里定义了<span style="color: #ff0000;">get_home_template()</span>。</p>
<blockquote><p>function <span style="color: #ff0000;">get_home_template()</span> {//返回所要加载的主题<br />
$template = &#8221;;<br />
if ( file_exists(TEMPLATEPATH . &#8220;/home.php&#8221;) )<br />
$template = TEMPLATEPATH . &#8220;/home.php&#8221;;<br />
elseif ( file_exists(TEMPLATEPATH . &#8220;/index.php&#8221;) )<br />
$template = TEMPLATEPATH . &#8220;/index.php&#8221;;<br />
return apply_filters(&#8216;home_template&#8217;, <span style="color: #ff6600;">$template</span>);</p></blockquote>
<p>其中apply_filters()的作用是：将$template <a href="http://blog.shidelai.cn/2008/07/plugins.html" target="_blank">hook</a>到tag＝&#8217;home_template&#8217;的filters上并返回$template，也就是主题包的路径。<br />
<strong>2、</strong>有require_once(ABSPATH . WPINC . &#8216;/template-loader.php&#8217;);<br />
调用了.／wp-includes/template-loader.php（ABSPATH代表./， WPINC代表/wp-includes）。<br />
而.／wp-includes/template-loader.php中有：</p>
<blockquote><p>} else if ( is_home() &amp;&amp; <span style="color: #ff6600;">$template</span> = <span style="color: #ff0000;">get_home_template()</span> ) {<br />
include(<span style="color: #ff6600;">$template</span>);<br />
return;</p></blockquote>
<p><span style="color: #ff0000;">get_home_template()</span>将 主题包路径返回给$template，这里的include($template);语句就把./wp-content/themes/主题名/index.php(比如<a href="http://blog.shidelai.cn" target="_blank">阿德</a>日志现在所用的主题路径就是./wp-content/ade/index.php)包含进去了。于是开始执到./wp-content/themes/ade/index.php里面的代码了，接下来就是该主题内部的事情了。</p>
<h4><strong>三、主题被调用后，首页的加载过程</strong></h4>
<p><span style="font-size: 10.5pt; font-family: 宋体;"><span style="font-size: 10.5pt; font-family: 宋体;"><span style="font-size: 10.5pt; font-family: 宋体;"><span style="font-size: 10.5pt; font-family: 宋体;"> </span></span></span></span></p>
<p>各个页面的加载过程大致相同，下面以首页为例说明。显示首页的时候，Wordpress只调用index.php，在index.php定义了要加载那些模板以及其加载顺序。一般情况是：header.php－&gt;页面主要内容（index，page，signle等页面都有其自己的定义）-&gt;sidebar.php-&gt;footer.php</p>
<p>其实对于一个能够提供Theme的程序而言，在程序的构架上必须要实现数据和表现的分离。通常我们所说的MVC（Model、View、Controller）架构就是这个意思。</p>
<p>在WordPress中，是这样来实现数据和实现的分离的。<br />
1. XHTML：用Div等用来表现数据，CSS来描述这些数据的表现形式，用这种方式来实现数据和表现的分离；<br />
2. Template的方式：页面各个部分单独保存为一个一个.php文件（如上面的sidebar.php，footer.php等），页面加载时候调用所需代码。</p>
<p>比如&lt;?php comments_template(); ?&gt;就返回了留言框的所需代码。</p>
<p>在比如index中有：<br />
&lt;?php get_footer(); ?&gt;<br />
&lt;?php get_header(); ?&gt;<br />
&#8220;get_header&#8221;和&#8221;get_footer&#8221;分别用来得到该页的Header和Footer，其实就是两个DIV块儿。index的主体同样是一个大的Div（&lt;div id=&#8221;content&#8221;&gt;），在该Theme的CSS中即可以看到对这个DIV的表现定义，包括字体、背景颜色、边距等等。这里唯一的 id＝content来告诉浏览器，这个标签内的内容显示在css中定义的content部分里面。</p>
<hr /><h2>Comments</h2><ul><li><a href="http://blog.delai.me/2008/07/theme.html">2008-09-12</a>, <a href='http://www.coolhow.cn/?p=10' rel='external nofollow' class='url'>我就不行我搞不定你 | 超级杂货铺在线</a> writes: [...] WordPress运行原理学习笔记之一：主题机制初探 (0)   flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片 我们和伊朗开战了么？－－一个希望永远都不更新的网站 [...]</li><li><a href="http://blog.delai.me/2008/07/theme.html">2008-11-6</a>, <a href='http://filmnew.ru' rel='external nofollow' class='url'>RadiyRadik</a> writes: good article</li></ul><hr /><h2>Related posts:</h2><ul><li><a href="http://blog.delai.me/2008/02/3d-desktop-apple-theme.html" rel="bookmark" title="Permanent Link: linux界面优化，实现3D桌面，苹果主题。">linux界面优化，实现3D桌面，苹果主题。</a></li><li><a href="http://blog.delai.me/2008/07/plugins.html" rel="bookmark" title="Permanent Link: WordPress运行原理学习笔记之二：插件机制初探">WordPress运行原理学习笔记之二：插件机制初探</a></li></ul><hr /><strong>[原文链接：<a href="http://blog.delai.me/2008/07/theme.html">http://blog.delai.me/2008/07/theme.html</a>] </strong>]]></content:encoded>
			<wfw:commentRss>http://blog.delai.me/2008/07/theme.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WordPress侧边栏错位的原因及解决方法</title>
		<link>http://blog.delai.me/2008/07/wordpress-sidebar-error.html</link>
		<comments>http://blog.delai.me/2008/07/wordpress-sidebar-error.html#comments</comments>
		<pubDate>Sat, 05 Jul 2008 02:34:17 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[侧边栏]]></category>
		<category><![CDATA[右边栏]]></category>
		<category><![CDATA[移位]]></category>
		<category><![CDATA[错位]]></category>

		<guid isPermaLink="false">http://www.soulward.cn/?p=224</guid>
		<description><![CDATA[刚使用的主题WordPress主题常常有侧边栏错位，被放到留言框下面 或者 在原来侧栏位置的下面留言框右下脚的位置。

现象一：侧边栏位于留言框位置的右下角，既侧边栏原来位置的下面且左... ]]></description>
			<content:encoded><![CDATA[<p>刚使用的主题WordPress主题常常有侧边栏错位，被放到留言框下面 或者 在原来侧栏位置的下面留言框右下脚的位置。</p>
<p><strong>现象一：</strong>侧边栏位于留言框位置的右下角，既侧边栏原来位置的下面且左边没有内容的地方。</p>
<p><strong>原因：</strong>不同的浏览器对.css ＋ HTML 的渲染算法稍有区别，这导致了常常firefox里面正常的，在IE7里面有点点不一样，在IE6里面浏览器认为，右边的空间不够用了，只好将侧边栏放到位于侧边栏原来位置的下面且左边没有内容的地方，于是就侧边栏错位了。</p>
<p><strong>解决方法：</strong>修改主题包里的style.css文件。关键是修改里面的page和content两个div容器对应的宽度大小width属性值。要么让前者变大点，要么让后者变小点，这样对于发生错位的浏览器来说，侧边栏有足够的空间可以放了。操作很简单，你根本不需要任何.css的知识，搜索#page 找到后，看它的width属性的数值，比如970。那么你将整个style.css文件里面所有数值是970的都改大一点点，比如980，反正直到浏览器正常显示为止。当然也可以修改content那个数值，方法类似。</p>
<p><strong>现象二：</strong>侧边栏位于留言框下面。 <!--inline-more--></p>
<p><strong>原因：</strong>如果，只是个别网页有这种情况。那么不是主题包的问题了，是你博客文章的HTML代码里面包含一些类似&lt;div&gt;&lt;!&#8211;DC  这样的代码，按照HTML的规则，类似C语言，一个&lt;div&gt;是要于&lt;/div&gt;对应的，他们里面还可以再包含&lt;div&gt;&lt;div&gt;，这里平白无故多出来个&lt;div&gt;，导致浏览器在解析时候把这个div开始到侧栏甚至底部都作为这个div容器的一部分了，自然，在渲染时候，他就把侧栏也当作左边正文content的一部分了，于是就给弄到留言框下面了。</p>
<p><a href="http://www.soulward.cn" target="_blank">我</a>上次用某个博客备份软件，将网易博客备份成.xml然后导入到wordpress博客里面，结果导致很多文章里面有类似&lt;div&gt;&lt;!&#8211;DC这样的代码，导致了上面说的这种情况，起初在在源码里面找原因，着实花了我好长时间。平常正常的编辑一般不会导致这种情况，可以用&lt;!&#8212;-&gt;对HTML进行注释的，而且一些插件也是这种调用方式的。</p>
<p><strong>解决方法：</strong>原因里已经提到了～～，当然也不排除主题包的问题，但如果是主题包的问题一般是所有网页都这个样子的，如果是的话，那看看主题包的代码吧～。</p>
<hr /><h2>Comments</h2><ul><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">2008-07-5</a>, <a href='http://buyaobo.cn' rel='external nofollow' class='url'>buyaobo.cn|不要博</a> writes: 一点小建议,你的侧边放关于天气的插件没什么实际意义,还不如把连接做在侧边,增加你的外连,多SEO还是有一定好处的</li><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">2008-07-5</a>, 阿德.idea writes: 你说得对，我正在修改sidebar :cool:</li><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">2008-07-16</a>, <a href='http://wangyueblog.com/2008/07/16/the-causes-and-solutions-about-wordpress-theme-on-the-wrong-side-and-under-the-column/' rel='external nofollow' class='url'>关于wordpress主题错位及侧边栏下掉的原因及解决办法</a> writes: [...] （以下内容参考自阿德日志） [...]</li><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">2008-09-8</a>, <a href='http://www.uutag.cn/archives/2008-09-07/wordpress-sidebar-under-the-column-error/' rel='external nofollow' class='url'>WordPress侧边栏错位的解决办法</a> writes: [...] 今天用Wordpress发表了转载的一篇文章之后，查看首页时即看到Wordpress侧边栏（sidebar）部分全部错位。整个侧边栏下沉到了博客首页文章的下面。我尝试着更换模板，重新上传模板文件，禁用所有的插件等方法都没有解决问题。在网上搜索了很多类似问题的解决办法，其中包括望月的博客的解决方法、阿德日志中提到的方法，但这些都没有解决我的这个问题。 [...]</li><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">2008-09-12</a>, <a href='http://www.coolhow.cn/?p=10' rel='external nofollow' class='url'>我就不行我搞不定你 | 杂货铺在线</a> writes: [...] WordPress侧边栏错位的原因及解决方法 (4) [...]</li><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">2008-11-10</a>, <a href='http://doctersonline.cn/' rel='external nofollow' class='url'>HUHU</a> writes: 我都只是首页这样，请教，什么问题呢</li><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">2008-11-10</a>, <a href='http://www.soulward.cn' rel='external nofollow' class='url'>阿德Delai</a> writes: 能具体点么？
出现这种错位只有两种可能：
1. CSS 中宽度设置问题
2. 网页内容中有一些特殊符号，这些HTML符号会和原本的<div>这样的符号对应起来，导致<div>容器不正常地结束掉</li><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">2008-11-11</a>, <a href='http://doctersonline.cn/' rel='external nofollow' class='url'>HUHU</a> writes: :cool: 谢谢，我已经换了主题，解决了，治标不治本的方法。哈哈</li><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">2008-12-5</a>, <a href='http://www.zhaojiansky.cn/wordpress-sidebar-sink.html' rel='external nofollow' class='url'>关于wordpress侧边栏下沉，虚惊一场 | My Life My Sky--赵剑的博客</a> writes: [...] 在网上搜索了一下，查看了望月博客和阿德日志，把上面介绍的方法都试了一遍，发现还是没有解决问题。 [...]</li><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">2008-12-26</a>, <a href='http://soft.whsjsoft.com/' rel='external nofollow' class='url'>首佳博客</a> writes: 你好!
我的侧边栏也很奇怪啊.在IE下面浏览时,主页的侧边栏看不见.其它页面及文章都正常.
FIREFOX下就正常.</li><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">2008-12-28</a>, <a href='http://www.soulward.cn' rel='external nofollow' class='url'>阿德</a> writes: firefox正常说明你的css是规范的。
你看一下css文件里面涉及到侧栏大小，位置的代码，看看是不是有 * 开头的代码行，如：
#content {
	padding: 0px 0px 7px 25px;
	float: left;
	width: 670px;
        *wide: 680px;
	overflow: hidden;	
}
IE应用的是带星号的那一行。
如果没有的话，你试试用这个办法加上针对IE的CSS吧。</li><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">2009-01-13</a>, yuelin writes: :mrgreen: 谢谢此篇文章解决了问题。 设置的摘要，把文章中下面的一个  给去掉了 ，导致侧边栏显示在下边。</li><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">2009-01-13</a>, <a href='http://www.soulward.cn' rel='external nofollow' class='url'>阿德</a> writes: u are welcome!</li><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">2010-09-28</a>, Anonymous writes: :cry:</li></ul><hr /><h2>Related posts:</h2><ul><li><a href="http://blog.delai.me/2008/06/error-read-iytimg-com.html" rel="bookmark" title="Permanent Link: Firefox打开页面长期处于‘Read i.ytimg.com‘状态的原因">Firefox打开页面长期处于‘Read i.ytimg.com‘状态的原因</a></li><li><a href="http://blog.delai.me/2008/06/how-to-flickrrss.html" rel="bookmark" title="Permanent Link: flickrRSS高阶使用三部曲之一：显示flickr上的图片">flickrRSS高阶使用三部曲之一：显示flickr上的图片</a></li><li><a href="http://blog.delai.me/2008/06/wordpress-seo.html" rel="bookmark" title="Permanent Link: 抛弃All in One SEO Pack，WordPerss的SEO优化小结">抛弃All in One SEO Pack，WordPerss的SEO优化小结</a></li><li><a href="http://blog.delai.me/2008/07/theme.html" rel="bookmark" title="Permanent Link: WordPress运行原理学习笔记之一：主题机制初探">WordPress运行原理学习笔记之一：主题机制初探</a></li><li><a href="http://blog.delai.me/about" rel="bookmark" title="Permanent Link: 关于本站">关于本站</a></li></ul><hr /><strong>[原文链接：<a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html">http://blog.delai.me/2008/07/wordpress-sidebar-error.html</a>] </strong>]]></content:encoded>
			<wfw:commentRss>http://blog.delai.me/2008/07/wordpress-sidebar-error.html/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>flickrRSS高阶使用三部曲之三：配合Gravatar2让flickr的图片作为WordPress留言的随机头像</title>
		<link>http://blog.delai.me/2008/07/gravatars2-flickrrss.html</link>
		<comments>http://blog.delai.me/2008/07/gravatars2-flickrrss.html#comments</comments>
		<pubDate>Fri, 04 Jul 2008 07:41:12 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[gravatar2]]></category>
		<category><![CDATA[留言框]]></category>
		<category><![CDATA[随机头像]]></category>

		<guid isPermaLink="false">http://www.soulward.cn/?p=221</guid>
		<description><![CDATA[其实要实现这个效果很简单。

在WordPress插件：显示flickr上的图片－flickrRSS使用详解（http://blog.shidelai.cn/2008/06/how-to-flickrrss.html）和 WordPress博客中显示与文章内容相关的Flickr图片 （http://blog.shi... ]]></description>
			<content:encoded><![CDATA[<p>Gravatar，全称为 <strong>g</strong>lobally <strong>r</strong>ecognized <strong>avatar</strong>，是 <a id="r_l_1" class="external" rel="nofollow" href="http://www.gravatar.com/" target="_blank">http://www.gravatar.com/</a> 推出的一种头像身份标识服务。只要你在Gravatar上注册你邮箱，和上传头像图片，然后当你在启动 Gravatar 服务的博客上留言，就可以显示你的头像。</p>
<p>WordPress内置了对Gravatar的支持，但国内在Gravatar上注册过的人还是比较少的，这导致了留言中大部分都是默认的头像，这样想到很单调。</p>
<p>如果能让留言的人中Gravatar上注册过的显示其对应的头像，没注册过的随机显示一张来自flickr上的图片，那么留言框将很有生气哦。比如这样:http://blog.shidelai.cn/leave-message。</p>
<p>其实要实现这个效果很简单。</p>
<p>在<a href="http://blog.shidelai.cn/2008/06/how-to-flickrrss.html" target="_blank">WordPress插件：显示flickr上的图片－flickrRSS使用详解</a>（http://blog.shidelai.cn/2008/06/how-to-<a href="http://blog.delai.me/tag/flickrrss" class="st_tag internal_tag" rel="tag" title="Posts tagged with flickrRSS">flickrrss</a>.html）和 <a href="http://blog.shidelai.cn/2008/06/essay-photo.html" target="_blank">WordPress博客中显示与文章内容相关的Flickr图片</a> （http://blog.shidelai.cn/2008/06/essay-photo.html）中我已经介绍了在文章中显示与文章内容相关的flickr图片，如果按文中提到的设置过来，那么会有很多图片被缓存在/home/yourname/domains/soulward.cn/public_html/wp-content/cache这个文件夹下面。而Gravatar2这个插件最重要的改进就是可以随机选取一张图片作为留言头像。</p>
<p>参照上面提到的2篇文章解决好flickrRSS后，接下来就是Gravatar2的事情了。<!--inline-more--></p>
<p><a href="http://blog.shidelai.cn/wp-content/uploads//2008/07/gravatars2.rar">gravatars2下载：http://blog.shidelai.cn/wp-content/uploads//2008/07/gravatars2.rar</a></p>
<p>解压后，安装它显示的文件夹结构，将gravatars2.php 和 gravatars2-wpcron.php 上传到plugins文件夹下，将gravatars文件夹上传到wp-content下面。</p>
<p>然后后台激活他们。其中gravatars2-wpcron.php是用来从Gravatar网站缓存用户头像的，可以选择不激活。</p>
<p>在Setting－Gravatar2中设置头像文件夹为：/home/yourname/domains/soulward.cn/public_html/wp-content/cache（根据具体情况修改）</p>
<p>然后在你的 style.css 文件中插入以下样式头像的代码：</p>
<blockquote><p>.gravatar {<br />
float: right;<br />
margin-left: 10px;<br />
width: 75px;<br />
height: 75px;<br />
border: 1px solid #b0deff;<br />
}</p></blockquote>
<blockquote><p>上面是官方推荐的，下面的是我使用的：<br />
.gravatar {<br />
float: right;<br />
margin-left: 10px;<br />
width: 75px;<br />
height: 75px;<br />
border: 1px solid #b0deff;</p>
<p>}</p></blockquote>
<p>最后在 comments.php 中找到</p>
<blockquote><p>&lt;li class=&#8221;&lt;?php echo $oddcomment; ?&gt;&#8221; id=&#8221;comment-&lt;?php comment_ID() ?&gt;&#8221;&gt;</p>
<p>在下面添加</p></blockquote>
<blockquote><p>&lt;?php if (function_exists(&#8216;gravatar&#8217;)) { gravatar_image_link(); } ?&gt;</p></blockquote>
<p>附上我的<a href="http://blog.shidelai.cn/wp-content/uploads//2008/07/comments.php">comments.php</a>供参考</p>
<hr /><h2>Comments</h2><ul><li><a href="http://blog.delai.me/2008/07/gravatars2-flickrrss.html">2010-04-10</a>, Anonymous writes: ;-)  :|  :twisted:</li><li><a href="http://blog.delai.me/2008/07/gravatars2-flickrrss.html">2010-04-16</a>, <a href='http://www.coolhao123.com' rel='external nofollow' class='url'>好玩吗</a> writes: 呵呵，越来越精彩了啊</li></ul><hr /><h2>Related posts:</h2><ul><li><a href="http://blog.delai.me/2008/06/how-to-flickrrss.html" rel="bookmark" title="Permanent Link: flickrRSS高阶使用三部曲之一：显示flickr上的图片">flickrRSS高阶使用三部曲之一：显示flickr上的图片</a></li><li><a href="http://blog.delai.me/2008/06/essay-photo.html" rel="bookmark" title="Permanent Link: flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片">flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片</a></li><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html" rel="bookmark" title="Permanent Link: flickrRSS高阶应用三部曲之新版本flickrRss 5.0补录">flickrRSS高阶应用三部曲之新版本flickrRss 5.0补录</a></li></ul><hr /><strong>[原文链接：<a href="http://blog.delai.me/2008/07/gravatars2-flickrrss.html">http://blog.delai.me/2008/07/gravatars2-flickrrss.html</a>] </strong>]]></content:encoded>
			<wfw:commentRss>http://blog.delai.me/2008/07/gravatars2-flickrrss.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>抛弃All in One SEO Pack，WordPerss的SEO优化小结</title>
		<link>http://blog.delai.me/2008/06/wordpress-seo.html</link>
		<comments>http://blog.delai.me/2008/06/wordpress-seo.html#comments</comments>
		<pubDate>Sat, 28 Jun 2008 18:51:54 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[all in one seo pack]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://www.soulward.cn/?p=216</guid>
		<description><![CDATA[对于wordpress，SEO（Search Engine Optimization搜索引擎优化），我都是新手。查看高人前辈的文章，大概知道了以下这些：
应该把最重要的信息放到最前面：

1. 文章网页的标题最好包含文章的标题... ]]></description>
			<content:encoded><![CDATA[<p>对于wordpress，SEO（Search Engine Optimization搜索引擎优化），我都是新手。查看高人前辈的文章，大概知道了以下这些：</p>
<h4>应该把最重要的信息放到最前面：</h4>
<p>1. 文章网页的标题最好包含文章的标题，而且网页标题以现文章标题后博客名称为佳，而不是wordpress默认的现博客名称后文章标题。  2. 搜索引擎的爬虫处理一个网页里的内容时候是安装html代码的顺序来的。所以，一般的主题都是先<span style="color: #3366ff;">header.php</span> 然后 <span style="color: #3366ff;">最重要的内容部分</span> 再 <span style="color: #3366ff;">侧边栏 </span>最后 <span style="color: #3366ff;">footer.php</span> 这们一个html代码顺序来的。</p>
<h4>应该做到对搜索引擎友好：</h4>
<p>3. 每个网页都要有keywords和description这两个meta标签，方便搜索引擎检索。  4. 日期，分类等存档页面都会有和单篇日志内容重复的现象，这回降低文章在搜索引擎中的排名权值，应该告诉爬虫我不希望这些页面被收录。</p>
<h2>抛弃All in One SEO Pack</h2>
<p>All in one seo pack 是常用的wordpress seo <a href="http://blog.delai.me/tag/%e6%8f%92%e4%bb%b6" class="st_tag internal_tag" rel="tag" title="Posts tagged with 插件">插件</a>，几乎人手一份，但我发现，完全可以自己修改主题源码做到比使用这个插件更好的效果。  <a href="http://fairyfish.net/2007/11/05/throw-away-all-in-one-seo-pack/">我在水煮鱼</a> 在 <a href="http://fairyfish.net/2007/11/05/throw-away-all-in-one-seo-pack/">别用 All in One SEO Pack</a> 提到：All in one seo pack无非四个功能：页面的标题，Meta 中 Keywords 和 Description，以及重复内容。</p>
<p><!--inline-more-->我拿来主义用他的办法并改进一些细节部分。  1. 标题和Keywords，Description Metab标签的优化：  在&lt;head&gt;&lt;/head&gt;之间插入</p>
<blockquote><p>&lt;?php if (is_home())<br />
{<br />
$description = &#8220;我的个人网站，记录我想记录的&#8221;;<br />
$keywords = &#8220;时事、生活、<a href="http://blog.delai.me/tag/wordpress" class="st_tag internal_tag" rel="tag" title="Posts tagged with wordpress">WordPress</a>、Linux&#8221;;<br />
}<br />
elseif (is_single())<br />
{<br />
$description =  $post-&gt;post_title ;<br />
$keywords = &#8220;&#8221;;<br />
$tags = wp_get_post_tags($post-&gt;ID);<br />
foreach ($tags as $tag )<br />
{<br />
$keywords = $keywords . $tag-&gt;name . &#8220;, &#8220;;<br />
}<br />
}<br />
elseif(is_category())<br />
{<br />
$description = category_description($cat);<br />
$keywords = single_cat_title(&#8220;&#8221;, false);<br />
}<br />
elseif(is_tag())<br />
{<br />
$description = single_tag_title(&#8220;&#8221;, false);<br />
$keywords = single_tag_title(&#8220;&#8221;, false);<br />
}<br />
?&gt;<br />
&lt;title&gt;&lt;?php if (is_single() || is_page() || is_archive()) { ?&gt;&lt;?php wp_title(&#8221;,true); ?&gt; @ &lt;?php } bloginfo(&#8216;name&#8217;); ?&gt; ( &lt;?php echo $keywords; ?&gt; ) &lt;/title&gt;<br />
&lt;meta name=&#8221;keywords&#8221; content= &#8220;&lt;?php echo $keywords; ?&gt;&#8221; /&gt;<br />
&lt;meta name=&#8221;description&#8221; content=&#8221;&lt;?php echo $description; ?&gt;&#8221; /&gt;</p></blockquote>
<p>2. 避免内容没重复检索：  可以修改robots.txt来告诉爬虫那些内容不要收录，但多数情况下，可以在单独的网页html文件中增加相关meta标签来解决这个问题：</p>
<p>&lt;meta name=&#8221;robots&#8221; content=&#8221;index,follow&#8221;&gt;</p>
<p>&lt;meta name=&#8221;robots&#8221; content=&#8221;noindex,follow&#8221;&gt;</p>
<p>&lt;meta name=&#8221;robots&#8221; content=&#8221;index,nofollow&#8221;&gt;</p>
<p>&lt;meta name=&#8221;robots&#8221; content=&#8221;noindex,nofollow&#8221;&gt;</p>
<p>其中index标签表示搜索引擎可以收录，noindex不收录；follow表示可以根据页内链接继续漫游，nofollow则禁止。</p>
<p>所以我<a id="r_l_5" class="external" rel="nofollow" href="http://e-spacy.com/blog/wordpress-duplicate-content/" target="_blank">推荐用via E-Space的办法：</a> 还是在&lt;head&gt;&lt;/head&gt;之间插入</p>
<blockquote><p>&lt;?php if (is_single() OR is_page() OR is_home()) : ?&gt;&lt;meta name=&#8221;robots&#8221; content=&#8221;index,follow&#8221; /&gt;&lt;?php else : ?&gt;&lt;meta name=&#8221;robots&#8221; content=&#8221;noindex,follow&#8221; /&gt;&lt;?php endif; ?&gt;</p></blockquote>
<p>如果不是首页或者单篇文章的内容，就不要收录。</p>
<hr /><h2>Comments</h2><ul><li><a href="http://blog.delai.me/2008/06/wordpress-seo.html">2008-09-12</a>, <a href='http://www.coolhow.cn/?p=10' rel='external nofollow' class='url'>我就不行我搞不定你 | 超级杂货铺在线</a> writes: [...] 抛弃All in One SEO Pack，WordPerss的SEO优化小结  分类：wordpress | 点击量：200次 | 标签 : all in one seo pack , seo , wordpress [...]</li><li><a href="http://blog.delai.me/2008/06/wordpress-seo.html">2009-10-29</a>, <a href='http://www.xue626.cn' rel='external nofollow' class='url'>雪花博客</a> writes: 看你这个是老帖子不知道现在还管不管用了....
我现在正在为SEO发愁呢...</li><li><a href="http://blog.delai.me/2008/06/wordpress-seo.html">2009-11-6</a>, <a href='http://blog.shidelai.cn' rel='external nofollow' class='url'>阿德</a> writes: 应该还是有点用的，这些东西不会过时的</li></ul><hr /><h2>Related posts:</h2><ul><li><a href="http://blog.delai.me/2008/06/how-to-flickrrss.html" rel="bookmark" title="Permanent Link: flickrRSS高阶使用三部曲之一：显示flickr上的图片">flickrRSS高阶使用三部曲之一：显示flickr上的图片</a></li><li><a href="http://blog.delai.me/about" rel="bookmark" title="Permanent Link: 关于本站">关于本站</a></li><li><a href="http://blog.delai.me/2008/12/wordpress-upgrade.html" rel="bookmark" title="Permanent Link: 升级WordPress2.7要注意的地方">升级WordPress2.7要注意的地方</a></li><li><a href="http://blog.delai.me/2008/07/wordpress-sidebar-error.html" rel="bookmark" title="Permanent Link: WordPress侧边栏错位的原因及解决方法">WordPress侧边栏错位的原因及解决方法</a></li><li><a href="http://blog.delai.me/2008/07/plugins.html" rel="bookmark" title="Permanent Link: WordPress运行原理学习笔记之二：插件机制初探">WordPress运行原理学习笔记之二：插件机制初探</a></li></ul><hr /><strong>[原文链接：<a href="http://blog.delai.me/2008/06/wordpress-seo.html">http://blog.delai.me/2008/06/wordpress-seo.html</a>] </strong>]]></content:encoded>
			<wfw:commentRss>http://blog.delai.me/2008/06/wordpress-seo.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片</title>
		<link>http://blog.delai.me/2008/06/essay-photo.html</link>
		<comments>http://blog.delai.me/2008/06/essay-photo.html#comments</comments>
		<pubDate>Sat, 14 Jun 2008 06:55:56 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[内容]]></category>
		<category><![CDATA[图片]]></category>
		<category><![CDATA[插件]]></category>
		<category><![CDATA[文章相关]]></category>

		<guid isPermaLink="false">http://www.soulward.cn/?p=214</guid>
		<description><![CDATA[在WordPress插件：显示flickr上的图片－flickrRSS使用详解中我介绍了flickrRSS插件的简单应用，也列举了如何在留言框下面显示flickr上最新发布的标签为：hangzhou的图片。但阿德总感觉这样太单调了，... ]]></description>
			<content:encoded><![CDATA[<p>在<a href="http://blog.shidelai.cn/2008/06/how-to-flickrrss.html/" target="_blank">WordPress插件：显示flickr上的图片－flickrRSS使用详解</a>中我介绍了flickrRSS插件的简单应用，也列举了如何在留言框下面显示flickr上最新发布的标签为：hangzhou的图片。但阿德总感觉这样太单调了，可不可以在这个位置显示与这篇文章内容相关的图片呢？如果可以岂不是太爽了？答案当然是肯定的！要不就不会有这篇博文了，呵呵。<img onclick="grin(':cool:');" src="../wp-includes/images/smilies/icon_cool.gif" alt=":cool:" width="22" height="22" /></p>
<h2>方法</h2>
<p>1. 在打开主题文件夹下的single.php，在</p>
<blockquote><p>&lt;div class=&#8221;post&#8221; id=&#8221;post-&lt;?php the_ID(); ?&gt;&#8221;&gt;</p>
<p>&#8230;&#8230;&#8230;.</p>
<p>&lt;/div&gt;&lt;!&#8211;/post &#8211;&gt;</p></blockquote>
<p>之间添加如下代码：<br />
<!--inline-more--></p>
<blockquote><p>&lt;?php<br />
$tags = explode(&#8220;, &#8220;, get_the_tag_list(&#8221;,&#8217;, &#8216;,&#8221;));<br />
$first_tag=preg_replace(&#8216;|&lt;a\s.*?&gt;(.*?)&lt;/a&gt;|i&#8217;,   &#8216;\1&#8242;,   $tags[0]);<br />
?&gt;</p></blockquote>
<p>2. 将<a href="http://blog.shidelai.cn/2008/06/how-to-flickrrss.html/" target="_blank">flickrRSS使用详解</a>里面提到的</p>
<blockquote><p>&lt;div id=&#8221;related-pic&#8221;&gt;<br />
&lt;?php get_<a href="http://blog.delai.me/tag/flickrrss" class="st_tag internal_tag" rel="tag" title="Posts tagged with flickrRSS">flickrRSS</a>(8, &#8220;community&#8221;, &#8220;$first_tag&#8221;, &#8220;square&#8221;, &#8220;&amp;nbsp;&#8221;, &#8220;&amp;nbsp;&#8221;); ?&gt;<br />
&lt;/div&gt;</p></blockquote>
<p>修改为：</p>
<blockquote><p>&lt;div id=&#8221;related-pic&#8221;&gt;<br />
&lt;?php get_flickrRSS(8, &#8220;community&#8221;, &#8220;$first_tag&#8221;, &#8220;square&#8221;, &#8220;&amp;nbsp;&#8221;, &#8220;&amp;nbsp;&#8221;); ?&gt;<br />
&lt;/div&gt;</p>
<p>这段代码在新的flickr5.0版本中不适用了，具体解决方法看这里<a title="Permanent Link to flickrRSS高阶应用三部曲之新版本flickrRss 5.0补录" rel="bookmark" href="../2009/03/flickrrss-50.html">flickrRSS高阶应用三部曲之新版本flickrRss 5.0补录</a></p></blockquote>
<p>另外你可以参考<a title="Permanent Link to 不同浏览器里图片大小不同的解决方法" rel="bookmark" href="../2008/12/photo-css-max.html">不同浏览器里图片大小不同的解决方法</a></p>
<p><strong><a href="http://blog.delai.me/tag/%e5%8e%9f%e7%90%86" class="st_tag internal_tag" rel="tag" title="Posts tagged with 原理">原理</a></strong>就是显示flickr上标签与文章第一个标签相同的图片，但是<span style="color: #ff0000;"><strong>注意：文章的第一个标签并不是你在编辑时候输入的第一个标签，而是按照字母排序的第一个标签。</strong></span></p>
<p>当然你也可以再这设置个$second_tag让它显示包含头2个标签的图片。不过我发现这样会很少有符合条件的图片，很多情况下一张都没有（主要是因为flickr上的标签英文居多，我们博客的标签中文居多）。</p>
<h2>Advanced</h2>
<p>发挥你的想象力，get_flickrRSS()真的是很好很强大阿，它一共可以设置7个参数，下面的参数介绍你或许用得着。</p>
<ol>
<li><code>$num_items</code> &#8211; how many photos you want to appear   显示多少图片</li>
<li><code>$type</code> &#8211; specify <em>user, set, favorite, group or community</em> photosream    设置是在用户的所有图片，还是用户的收藏，还是。。。。中搜索</li>
<li><code>$tags</code> &#8211; a comma separated list of tags (with no spaces)  标签</li>
<li><code>$imagesize</code> &#8211; <em>square, thumbnail, medium or large  图片大小<br />
</em></li>
<li><code>$before_image</code> &#8211; html appearing before each photo  插入每张图片之前的html代码</li>
<li><code>$after_image</code> &#8211; html appearing after each photo   插入每张图片之后的html代码</li>
<li><code>$id_number</code> &#8211; specify a user id (or group name)   在特定的用户或者组中搜索</li>
<li><code>$set_id</code> &#8211; specify the set id (found in set url)</li>
</ol>
<hr /><h2>Comments</h2><ul><li><a href="http://blog.delai.me/2008/06/essay-photo.html">2008-07-4</a>, <a href='http://www.soulward.cn/2008/07/gravatars2-flickrrss.html' rel='external nofollow' class='url'>让flickr的图片作为WordPress留言的随机头像 @ 阿德日志 ( 留言框, 随机头像, flickr, gravatar2, wordpress, )</a> writes: [...] WordPress博客中显示与文章内容相关的Flickr图片 [...]</li><li><a href="http://blog.delai.me/2008/06/essay-photo.html">2008-12-11</a>, <a href='http://ts12316.cn' rel='external nofollow' class='url'>tsman</a> writes: 学习了2天了，问一下，你的评论栏下的图片之间的空格怎么控制？为甚麽我的都是紧挨着的！</li><li><a href="http://blog.delai.me/2008/06/essay-photo.html">2008-12-11</a>, <a href='http://www.soulward.cn' rel='external nofollow' class='url'>阿德Delai</a> writes: # $before_image - html appearing before each photo  插入每张图片之前的html代码
# $after_image - html appearing after each photo   插入每张图片之后的html代码

这两项可以用 html语言的空格
你试试
<?php get_flickrRSS(8, "community", "$first_tag", "square", "&nbsp;", "&nbsp;"); ?></li><li><a href="http://blog.delai.me/2008/06/essay-photo.html">2008-12-11</a>, <a href='http://www.soulward.cn' rel='external nofollow' class='url'>阿德Delai</a> writes: 最后没那两个参数，实际上是
"& nbsp;", "& nbsp;" （nbsp前面的空格去掉）
是html语言里的空格，我原原本本把代码拷过来，浏览器还是会把它解析成空格给你看的，
所以你看到的是
< ?php get_flickrRSS(8, "community", "$first_tag", "square", " ", " "); ?>
你试试将最后两个双引号里面的空格改成   & nbsp      （nbsp前面的空格去掉）</li><li><a href="http://blog.delai.me/2008/06/essay-photo.html">2008-12-11</a>, <a href='http://www.soulward.cn' rel='external nofollow' class='url'>阿德Delai</a> writes: 文章内的代码部分已经用图片代替了</li><li><a href="http://blog.delai.me/2008/06/essay-photo.html">2008-12-15</a>, <a href='http://ts12316.cn' rel='external nofollow' class='url'>tsman</a> writes: 谢谢！再调整调整</li><li><a href="http://blog.delai.me/2008/06/essay-photo.html">2010-04-4</a>, <a href='http://luzhilong.host4.uzidc.cn/flickrrss%e9%ab%98%e9%98%b6%e5%ba%94%e7%94%a8%e4%b8%89%e9%83%a8%e6%9b%b2%e4%b9%8b%e6%96%b0%e7%89%88%e6%9c%acflickrrss-5-0%e8%a1%a5%e5%bd%95.html' rel='external nofollow' class='url'>flickrRSS高阶应用三部曲之新版本flickrRss 5.0补录 - 小龙的个人博客</a> writes: [...] flickrRSS 高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图... (6) [...]</li></ul><hr /><h2>Related posts:</h2><ul><li><a href="http://blog.delai.me/2008/12/photo-css-max.html" rel="bookmark" title="Permanent Link: 不同浏览器里图片大小不同的解决方法">不同浏览器里图片大小不同的解决方法</a></li><li><a href="http://blog.delai.me/2008/07/gravatars2-flickrrss.html" rel="bookmark" title="Permanent Link: flickrRSS高阶使用三部曲之三：配合Gravatar2让flickr的图片作为WordPress留言的随机头像">flickrRSS高阶使用三部曲之三：配合Gravatar2让flickr的图片作为WordPress留言的随机头像</a></li><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html" rel="bookmark" title="Permanent Link: flickrRSS高阶应用三部曲之新版本flickrRss 5.0补录">flickrRSS高阶应用三部曲之新版本flickrRss 5.0补录</a></li><li><a href="http://blog.delai.me/2008/04/firefox-logo-in-deep-space.html" rel="bookmark" title="Permanent Link: Firefox Logo Spied In Deep Space(火狐标志在宇宙深处出现）">Firefox Logo Spied In Deep Space(火狐标志在宇宙深处出现）</a></li><li><a href="http://blog.delai.me/2008/11/zju-bachelor-2.html" rel="bookmark" title="Permanent Link: 11月11号，实验室团购了11件纪念浙大建校111周年的光棍衫">11月11号，实验室团购了11件纪念浙大建校111周年的光棍衫</a></li></ul><hr /><strong>[原文链接：<a href="http://blog.delai.me/2008/06/essay-photo.html">http://blog.delai.me/2008/06/essay-photo.html</a>] </strong>]]></content:encoded>
			<wfw:commentRss>http://blog.delai.me/2008/06/essay-photo.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>flickrRSS高阶使用三部曲之一：显示flickr上的图片</title>
		<link>http://blog.delai.me/2008/06/how-to-flickrrss.html</link>
		<comments>http://blog.delai.me/2008/06/how-to-flickrrss.html#comments</comments>
		<pubDate>Fri, 13 Jun 2008 07:30:32 +0000</pubDate>
		<dc:creator>阿德</dc:creator>
				<category><![CDATA[wordpress]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[flickrRSS]]></category>
		<category><![CDATA[How To]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://www.soulward.cn/?p=209</guid>
		<description><![CDATA[通过flickrRSS你不仅仅是可以显示你自己flickr帐号上的图片，你也可以在WordPress博客中任何你想要的位置显示你所设定的flickr上的图片。比如：本网页留言框下面显示的是flickr上Tag为杭州的最新... ]]></description>
			<content:encoded><![CDATA[<p>通过flickrRSS你不仅仅是可以显示你自己flickr帐号上的图片，你也可以在WordPress博客中任何你想要的位置显示你所设定的flickr上的图片。比如：本网页留言框下面显示的是flickr上Tag为杭州的最新上传的图片，侧边栏上“养眼美图”部分就是flickrRSS的<span class="current">Widget</span>，通过后台添加即可。</p>
<h2>下载＆安装</h2>
<p><strong><a href="http://eightface.com/mint/pepper/orderedlist/downloads/download.php?file=http%3A//eightface.com/files/wordpress/flickrRSS.zip">flickrRSS 4.0</a></strong> — for WP 2.5<br />
<strong><a href="http://eightface.com/mint/pepper/orderedlist/downloads/download.php?file=http%3A//eightface.com/files/wordpress/flickrRSS.old.zip">flickrRSS 3.5</a></strong> — for WP 2.3</p>
<p>解压缩后复制到plugins目录下即可，然后后台激活。</p>
<blockquote><p>注意：由于flickr是国外网站，速度会比较慢，如果需要将图片在本地缓存，你需要新建一个可写的目录用于缓存图片。这样，图片第一次被浏览时候会下载到改目录下，下次就直接从该目录读取图片了。</p></blockquote>
<p>比如在wp-content目录下新建一个文件夹命名为<strong>cache</strong>。</p>
<h2>设置</h2>
<p><!--inline-more--><br />
进入setting（设置）下的flickrRSS设置页面，这里设置的是默认情况下flickrRSS输出的内容（<code>用于侧边栏的Widget和&lt;?php get_<a href="http://blog.delai.me/tag/flickrrss" class="st_tag internal_tag" rel="tag" title="Posts tagged with flickrRSS">flickrRSS</a>(); ?&gt;）</code>以及缓存文件夹的路径。</p>
<p>1. 点击<strong>ID Number</strong>后面的 <a href="http://idgettr.com/">idGettr</a> 输入一个Photostream Address（形如：http://www.<a href="http://blog.delai.me/tag/flickr" class="st_tag internal_tag" rel="tag" title="Posts tagged with flickr">flickr</a>.com/photos/delai，就是每个flickr用户主页的网址，你可以找个自己比较喜欢的用户的主页地址）。将获得的ID填入ID Number后面的文本框。</p>
<p>2. <strong>Display</strong>设置的是显示该用户的哪些图片，以什么方式显示，如图片大小，显示多少张等等。</p>
<p>在侧边栏中添加flickrRSS的Wigdet，应该可以显示图片了。</p>
<p>3. 如果要使用本地缓存功能，勾上Enable the image cache，然后设置下路径：</p>
<blockquote><p>URL： http://blog.shidelai.cn/wp-content/cache/</p>
<p>Full Path：/home/yourname/domains/soulward.cn/public_html/wp-content/cache</p></blockquote>
<p>你可以参照一下我的进行设置，如果你装过Gravatar2的话那么打开它的设置面板就可以很容易知道Full Path里面该填什么了。</p>
<h2>使用</h2>
<p>前面提到，出了能在侧边栏显示图片之外，我们还可以在主题中插入代码使得可以在博客的任意位置显示符合各种要求设定的flickr图片。阿德只简单地在留言框下面显示最新上传的flickr上Tag为&#8217;hangzhou&#8217;的图片，并且点击图片后是在新窗口打开对应的flickr页面，而不是默认地在本地窗口打开，咱不能让flickr抢了生意不是？。</p>
<p>方法：</p>
<blockquote><p>1. 在single.php中最后一个&lt;/div&gt;前面添加</p>
<p>&lt;ul&gt;<br />
&lt;div class=&#8221;flickrtag&#8221;&gt;<br />
&lt;li&gt;&lt;h3 class=&#8221;sidebartitle&#8221;&gt;Flickr上的杭州&lt;/h3&gt;<br />
&lt;?php get_flickrRSS(9, &#8220;community&#8221;, &#8220;hangzhou&#8221;,&#8221;square&#8221;); ?&gt;<br />
&lt;/li&gt;<br />
&lt;/div&gt;<br />
&lt;ul&gt;</p>
<p>如有疑问可以参看下我的<a href="http://blog.shidelai.cn/wp-content/uploads/2008/06/singlephp.zip">single.php</a>源码</p>
<p>2. 在style.css中添加</p>
<p>.flickrtag a:active{<br />
text:expression(target=&#8221;_blank&#8221;);<br />
}</p>
<p>测试下吧，呵呵</p></blockquote>
<p>当然，你可以发挥自己的想象力，比如最新上传的tag为艳照门的图片阿什么的。关于get_flickrRSS函数的参数和使用例子<a href="http://eightface.com/wordpress/flickrrss/">作者的网站</a>上以及有了，可以参考一下。</p>
<hr /><h2>Comments</h2><ul><li><a href="http://blog.delai.me/2008/06/how-to-flickrrss.html">2008-07-4</a>, <a href='http://www.soulward.cn/2008/07/gravatars2-flickrrss.html' rel='external nofollow' class='url'>让flickr的图片作为WordPress留言的随机头像 @ 阿德日志 ( 留言框, 随机头像, flickr, gravatar2, wordpress, )</a> writes: [...] 在WordPress插件：显示flickr上的图片－flickrRSS使用详解（http://www.soulward.cn/2008/06/how-to-flickrrss.html）和 WordPress博客中显示与文章内容相关的Flickr图片 （http://www.soulward.cn/2008/06/essay-photo.html）中我已经介绍了在文章中显示与文章内容相关的flickr图片，如果按文中提到的设置过来，那么会有很多图片被缓存在/home/yourname/domains/soulward.cn/public_html/wp-content/cache这个文件夹下面。而Gravatar2这个插件最重要的改进就是可以随机选取一张图片作为留言头像。 [...]</li><li><a href="http://blog.delai.me/2008/06/how-to-flickrrss.html">2009-01-24</a>, N/A writes: 不錯...</li><li><a href="http://blog.delai.me/2008/06/how-to-flickrrss.html">2009-07-1</a>, <a href='http://gman.in' rel='external nofollow' class='url'>gman</a> writes: :roll: 非常感谢，很实用！</li><li><a href="http://blog.delai.me/2008/06/how-to-flickrrss.html">2009-07-24</a>, <a href='http://blog.shidelai.cn/2008/06/essay-photo.html' rel='external nofollow' class='url'>flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片 @ 阿德日志 ( flickr, wordpress, 内容, 图片, 插件, 文章相关, )</a> writes: [...] 在WordPress插件：显示flickr上的图片－flickrRSS使用详解中我介绍了flickrRSS插件的简单应用，也列举了如何在留言框下面显示flickr上最新发布的标签为：hangzhou的图片。但阿德总感觉这样太单调了，可不可以在这个位置显示与这篇文章内容相关的图片呢？如果可以岂不是太爽了？答案当然是肯定的！要不就不会有这篇博文了，呵呵。 [...]</li><li><a href="http://blog.delai.me/2008/06/how-to-flickrrss.html">2009-07-24</a>, <a href='http://blog.shidelai.cn/2008/07/gravatars2-flickrrss.html' rel='external nofollow' class='url'>flickrRSS高阶使用三部曲之三：配合Gravatar2让flickr的图片作为WordPress留言的随机头像 @ 阿德日志 ( 留言框, 随机头像, flickr, gravatar2, wordpress, )</a> writes: [...] 在WordPress插件：显示flickr上的图片－flickrRSS使用详解（http://blog.shidelai.cn/2008/06/how-to-flickrrss.html）和 WordPress博客中显示与文章内容相关的Flickr图片 （http://blog.shidelai.cn/2008/06/essay-photo.html）中我已经介绍了在文章中显示与文章内容相关的flickr图片，如果按文中提到的设置过来，那么会有很多图片被缓存在/home/yourname/domains/soulward.cn/public_html/wp-content/cache这个文件夹下面。而Gravatar2这个插件最重要的改进就是可以随机选取一张图片作为留言头像。 [...]</li><li><a href="http://blog.delai.me/2008/06/how-to-flickrrss.html">2011-02-7</a>, <a href='http://www.arpun.com' rel='external nofollow' class='url'>arp</a> writes: 更新了，试试先</li></ul><hr /><h2>Related posts:</h2><ul><li><a href="http://blog.delai.me/2008/07/gravatars2-flickrrss.html" rel="bookmark" title="Permanent Link: flickrRSS高阶使用三部曲之三：配合Gravatar2让flickr的图片作为WordPress留言的随机头像">flickrRSS高阶使用三部曲之三：配合Gravatar2让flickr的图片作为WordPress留言的随机头像</a></li><li><a href="http://blog.delai.me/2008/06/essay-photo.html" rel="bookmark" title="Permanent Link: flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片">flickrRSS高阶使用三部曲之二：在WordPress博客中显示与文章内容相关的Flickr图片</a></li><li><a href="http://blog.delai.me/2009/03/flickrrss-50.html" rel="bookmark" title="Permanent Link: flickrRSS高阶应用三部曲之新版本flickrRss 5.0补录">flickrRSS高阶应用三部曲之新版本flickrRss 5.0补录</a></li></ul><hr /><strong>[原文链接：<a href="http://blog.delai.me/2008/06/how-to-flickrrss.html">http://blog.delai.me/2008/06/how-to-flickrrss.html</a>] </strong>]]></content:encoded>
			<wfw:commentRss>http://blog.delai.me/2008/06/how-to-flickrrss.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

