<?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://www.geekzhi.com/archives/category/i%e7%a7%91%e6%8a%80/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://www.geekzhi.com</link>
	<description>思考过去，展望未来！</description>
	<lastBuildDate>Sun, 28 Feb 2010 14:45:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>10个杀手级WordPress技巧</title>
		<link>http://www.geekzhi.com/archives/719</link>
		<comments>http://www.geekzhi.com/archives/719#comments</comments>
		<pubDate>Mon, 20 Apr 2009 16:34:18 +0000</pubDate>
		<dc:creator>Jason</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[i科技]]></category>

		<guid isPermaLink="false">http://www.geekzhi.com/?p=719</guid>
		<description><![CDATA[2008年是WordPress 迅速发展的一年，因此WordPress也升级了无数次，直到最近的2.7版本。很多的专注于WordPress的博客创建了起来，当然发现了大量的新技巧，这些技巧帮助很多的blogger提升了他们的博客功能。
在此篇文章中我们将介绍10个新的适用的杀手级WordPress 技巧来发动你喜爱的blogging 引擎力量。每个技巧都会带有详尽的说明，因此让你不仅能发动WordPress的力量，同样能理解其工作原理。
1.只针对搜索引擎用户显示广告
问题. 总所周知，普通的用户并不会点击广告，90%的情况，点击广告的是来自搜索引擎的用户。
另外一个问题是Google智能的定价机制，成为智能定价意味着你的点击等级(CTR)非常低，你每此点击所得将减低两倍，甚至10倍，例如每次点击所得为1$，在智能定价下，你所得的只能是$0.10，很痛苦，是吗？高兴的是，这个只针对来自搜索引的用户显示广告的方法能带来更多的点击和更高的CTR。
解决方法
1.打开当前主题中的 funtion.php 文件。
2.粘贴以下代码到其中:


functionscratch99_fromasearchengine(){$ref=$_SERVER['HTTP_REFERER'];$SE=array('/search?','images.google.','web.info.com','search.','del.icio.us/search','soso.com','/search/','.yahoo.');foreach($SEas$source){if(strpos($ref,$source)!==false)returntrue;}returnfalse;}


3.完成以上的步骤后，粘贴以下代码到你任何想显示广告的地方，他们将只会显示给从搜索引擎来的用户。


if(function_exists('scratch99_fromasearchengine')){if(scratch99_fromasearchengine()){INSERT YOUR CODE HERE// 这里插入你的广告代码}}


代码解释. 这个技巧创建了一个名为scratch99_fromasearchengine()的函数，这个函数包含了一个 $SE 数组变量，从而使你可以自定义搜索引擎。你可以添加新的元素来轻易的添加新的搜索引擎到数组。
函数scratch99_fromasearchengine() 会自动转变为 true //是 如果用户是来自数组变量中的搜索引擎。
来源:
How to Display Ads Only to Search Visitors How to: Display AdSense to search engine visitors only
2.在循环中避免重复文章
原因. 由于最近流行的“杂志型”主题，有一个来自于，在首页使用了多个循环//Loop的WordPress 用户的需求是如何在第二个循环上避免重复文章。
解决方法. 这里有一个简单的解决此问题的方法，利用PHP的数组功能。
1.首先让我们创建一个简单的PHP数组，把所有的IDs放进第一个循环中。


&#60;h2&#62;Loop n°1&#60;/h2&#62;
 &#60;?php$ids=array();while(have_posts()):the_post();
the_title();?&#62;&#60;br /&#62;
 &#60;?php$ids[]=$post-&#62;ID;endwhile;?&#62;


2.现在第二个循环，我们利用PHP函数 in_array() 来检测某个文章ID是否包含于$ids数组里，如果这个文章ID未包含于此数组里，我就能现在此篇文章，因为这篇文章并没有在第一个循环中显示。


&#60;h2&#62;Loop n°2&#60;/h2&#62;&#60;?phpquery_posts("showposts=50");while(have_posts()):the_post();if(!in_array($post-&#62;ID,$ids)){the_title();?&#62;&#60;br /&#62;&#60;?php}endwhile;?&#62;


代码解释.当第一个循环被执行时，里面所含ID的所有文章被赋予了一个数组变量。当第二个循环开始执行是，我们将检测确定当前文章ID并没有显示在第一个循环的引用数组。
来源:
 How to: Use two (or more) loops without duplicate posts
3.使用页码代替“上一页”和“下一页”连接
问题. 默认情况下，WordPress 有一个显示到上一页和下一页连接的函数，这比没有强，但我不明白为什么WordPress不创建一个默认的页码。当然这里有一些插件来创建页码，但是为什么不直接把它插入到你的主题中呢？
解决方法. 为了达完成这个技巧，我们将需要使用 WP-PageNavi 插件，并且直接把他插入到你的主题当中。
1.首先要做的事，当然是，下载这个插件
2.解压插件，并且把插件文件夹中的 wp-pagenavi.php 和 wp-pagenavi.css 文件上传到你当前主题的文件夹中。
3.打开你想要在里面显示页码的文件(例如 index.php, <a href="http://www.geekzhi.com/archives/719" class="more-link">更多 &#62;</a>]]></description>
			<content:encoded><![CDATA[<p>2008年是<span style="color: #2e6ab1;"><a onclick="tagshow(event, 'WordPress');" href="javascript:;" target="_self"><span style="text-decoration: underline;"><strong>WordPress</strong></span></a></span> 迅速发展的一年，因此<span style="color: #2e6ab1;">WordPress</span>也升级了无数次，直到最近的2.7版本。很多的专注于WordPress的博客创建了起来，当然发现了大量的新技巧，这些技巧帮助很多的blogger提升了他们的博客功能。</p>
<p>在此篇文章中我们将介绍10个新的适用的杀手级WordPress 技巧来发动你喜爱的blogging 引擎力量。每个技巧都会带有详尽的说明，因此让你不仅能发动WordPress的力量，同样能理解其工作原理。</p>
<h5>1.只针对<a onclick="tagshow(event, '%E6%90%9C%E7%B4%A2');" href="javascript:;" target="_self"><span style="text-decoration: underline;"><strong>搜索</strong></span></a>引擎用户显示广告</h5>
<p><strong>问题.</strong> 总所周知，普通的用户并不会点击广告，90%的情况，点击广告的是来自搜索引擎的用户。</p>
<p>另外一个问题是<a onclick="tagshow(event, 'Google');" href="javascript:;" target="_self"><span style="text-decoration: underline;"><strong>Google</strong></span></a>智能的定价机制，成为智能定价意味着你的点击等级(CTR)非常低，你每此点击所得将减低两倍，甚至10倍，例如每次点击所得为1$，在智能定价下，你所得的只能是$0.10，很痛苦，是吗？高兴的是，这个只针对来自搜索引的用户显示广告的方法能带来更多的点击和更高的CTR。</p>
<p><strong>解决方法</strong></p>
<p>1.打开当前主题中的 funtion.php 文件。</p>
<p>2.粘贴以下代码到其中:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php php"><span>function</span>scratch99_fromasearchengine<span>(</span><span>)</span><span>{</span><span>$ref</span><span>=</span><span>$_SERVER</span><span>[</span><span>'HTTP_REFERER'</span><span>]</span>;<span>$SE</span><span>=</span><span>array</span><span>(</span><span>'/search?'</span><span>,</span><span>'images.google.'</span><span>,</span><span>'web.info.com'</span><span>,</span><span>'search.'</span><span>,</span><span>'del.icio.us/search'</span><span>,</span><span>'soso.com'</span><span>,</span><span>'/search/'</span><span>,</span><span>'.yahoo.'</span><span>)</span>;<span>foreach</span><span>(</span><span>$SE</span><span>as</span><span>$source</span><span>)</span><span>{</span><span>if</span><span>(</span><span>strpos</span><span>(</span><span>$ref</span><span>,</span><span>$source</span><span>)</span><span>!==</span><span>false</span><span>)</span><span>return</span><span>true</span>;<span>}</span><span>return</span><span>false</span>;<span>}</span></pre>
</div>
</div>
<p>3.完成以上的步骤后，粘贴以下代码到你任何想显示广告的地方，他们将只会显示给从搜索引擎来的用户。</p>
<div class="wp_syntax">
<div class="code">
<pre class="php php"><span>if</span><span>(</span><span>function_exists</span><span>(</span><span>'scratch99_fromasearchengine'</span><span>)</span><span>)</span><span>{</span><span>if</span><span>(</span>scratch99_fromasearchengine<span>(</span><span>)</span><span>)</span><span>{</span>INSERT YOUR CODE HERE<span>// 这里插入你的广告代码</span><span>}</span><span>}</span></pre>
</div>
</div>
<p><strong>代码解释.</strong> 这个技巧创建了一个名为scratch99_fromasearchengine()的函数，这个函数包含了一个 $SE 数组变量，从而使你可以自定义搜索引擎。你可以添加新的元素来轻易的添加新的搜索引擎到数组。</p>
<p>函数scratch99_fromasearchengine() 会自动转变为 true //是 如果用户是来自数组变量中的搜索引擎。</p>
<p><strong>来源</strong>:</p>
<p>How to Display Ads Only to Search Visitors How to: Display AdSense to search engine visitors only</p>
<h5>2.在循环中避免重复文章</h5>
<p><strong>原因.</strong> 由于最近流行的“杂志型”主题，有一个来自于，在<a onclick="tagshow(event, '%E9%A6%96%E9%A1%B5');" href="javascript:;" target="_self"><span style="text-decoration: underline;"><strong>首页</strong></span></a>使用了多个循环//Loop的WordPress 用户的需求是如何在第二个循环上避免重复文章。</p>
<p><strong>解决方法.</strong> 这里有一个简单的解决此问题的方法，利用PHP的数组功能。</p>
<p>1.首先让我们创建一个简单的PHP数组，把所有的IDs放进第一个循环中。</p>
<div class="wp_syntax">
<div class="code">
<pre class="php php">&lt;h2&gt;Loop n°1&lt;/h2&gt;
 <span>&lt;?php</span><span>$ids</span><span>=</span><span>array</span><span>(</span><span>)</span>;<span>while</span><span>(</span>have_posts<span>(</span><span>)</span><span>)</span><span>:</span>the_post<span>(</span><span>)</span>;
the_title<span>(</span><span>)</span>;<span>?&gt;</span>&lt;br /&gt;
 <span>&lt;?php</span><span>$ids</span><span>[</span><span>]</span><span>=</span><span>$post</span><span>-&gt;</span><span>ID</span>;<span>endwhile</span>;<span>?&gt;</span></pre>
</div>
</div>
<p>2.现在第二个循环，我们利用PHP函数 in_array() 来检测某个文章ID是否包含于$ids数组里，如果这个文章ID未包含于此数组里，我就能现在此篇文章，因为这篇文章并没有在第一个循环中显示。</p>
<div class="wp_syntax">
<div class="code">
<pre class="php php">&lt;h2&gt;Loop n°2&lt;/h2&gt;<span>&lt;?php</span>query_posts<span>(</span><span>"showposts=50"</span><span>)</span>;<span>while</span><span>(</span>have_posts<span>(</span><span>)</span><span>)</span><span>:</span>the_post<span>(</span><span>)</span>;<span>if</span><span>(</span><span>!</span><span>in_array</span><span>(</span><span>$post</span><span>-&gt;</span><span>ID</span><span>,</span><span>$ids</span><span>)</span><span>)</span><span>{</span>the_title<span>(</span><span>)</span>;?<span>&gt;</span>&lt;br /&gt;<span>&lt;?php</span><span>}</span><span>endwhile</span>;<span>?&gt;</span></pre>
</div>
</div>
<p><strong>代码解释.</strong>当第一个循环被执行时，里面所含ID的所有文章被赋予了一个数组变量。当第二个循环开始执行是，我们将检测确定当前文章ID并没有显示在第一个循环的引用数组。</p>
<p><strong>来源:</strong></p>
<p> How to: Use two (or more) loops without duplicate posts</p>
<h5>3.使用页码代替“上一页”和“下一页”连接</h5>
<p><strong>问题.</strong> 默认情况下，WordPress 有一个显示到上一页和下一页连接的函数，这比没有强，但我不明白为什么WordPress不创建一个默认的页码。当然这里有一些插件来创建页码，但是为什么不直接把它插入到你的主题中呢？</p>
<p><strong>解决方法.</strong> 为了达完成这个技巧，我们将需要使用 WP-PageNavi 插件，并且直接把他插入到你的主题当中。</p>
<p>1.首先要做的事，当然是，<a href="http://wordpress.org/extend/plugins/wp-pagenavi/"><span style="color: #2e6ab1;">下载这个插件</span></a></p>
<p>2.解压插件，并且把插件文件夹中的 wp-pagenavi.php 和 wp-pagenavi.css 文件上传到你当前主题的文件夹中。</p>
<p>3.打开你想要在里面显示页码的文件(例如 index.php, categories.php, search.php, 等)，并且找到以下代码:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php php">&lt;div class="navigation"&gt;
&lt;div class="alignleft"&gt;<span>&lt;?php</span>next_posts_link<span>(</span><span>'Previous entries'</span><span>)</span><span>?&gt;</span>&lt;/div&gt;
&lt;div class="alignright"&gt;<span>&lt;?php</span>previous_posts_link<span>(</span><span>'Next entries'</span><span>)</span><span>?&gt;</span>&lt;/div&gt;
&lt;/div&gt;</pre>
</div>
</div>
<p>4.用以下的代码代替:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php php"><span>&lt;?php</span><span>include</span><span>(</span><span>'wp-pagenavi.php'</span><span>)</span>;<span>if</span><span>(</span><span>function_exists</span><span>(</span><span>'wp_pagenavi'</span><span>)</span><span>)</span><span>{</span>wp_pagenavi<span>(</span><span>)</span>;<span>}</span><span>?&gt;</span></pre>
</div>
</div>
<p>5.接下来我们必须修改这个插件的文件，这样做，打开 wp-pagenavi.php 文件，并找到下面的第61行。</p>
<div class="wp_syntax">
<div class="code">
<pre class="php php"><span>function</span>wp_pagenavi<span>(</span><span>$before</span><span>=</span><span>''</span><span>,</span><span>$after</span><span>=</span><span>''</span><span>)</span><span>{</span><span>global</span><span>$wpdb</span><span>,</span><span>$wp_query</span>;</pre>
</div>
</div>
<p>我们必须请求这个 pagenavi_init() 函数，我们这么做:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php php"><span>function</span>wp_pagenavi<span>(</span><span>$before</span><span>=</span><span>''</span><span>,</span><span>$after</span><span>=</span><span>''</span><span>)</span><span>{</span><span>global</span><span>$wpdb</span><span>,</span><span>$wp_query</span>;
        pagenavi_init<span>(</span><span>)</span>;<span>//Calling the pagenavi_init() function</span></pre>
</div>
</div>
<p>6.我们已经完成了大部分，最后一件要走的事情就是添加 wp-pagenavi <a onclick="tagshow(event, '%E6%A0%B7%E5%BC%8F');" href="javascript:;" target="_self"><span style="text-decoration: underline;"><strong>样式</strong></span></a>表带你的博客，打开header.php 文件，添加以下代码:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html">&lt;link rel="stylesheet" href="&lt;?php echo TEMPLATEPATH.'/pagenavi.css';?&gt;" type="text/css" media="screen" /&gt;</pre>
</div>
</div>
<p><strong>代码解释.</strong>这个技巧只是简单的将插件包含包了主题文件夹中，我们同样添加了一个pagenavi_init()请求函数来确保页码适当的显示。</p>
<p><strong>来源:</strong></p>
<p>How to: Integrate pagination in your WordPress theme</p>
<h5>4.自动提取文章中的图片</h5>
<p><strong>问题.</strong>使用自定义字段//custom fields 在文章中显示相关的图片当然是个好主意，但很多WordPress用户希望能有一个寻取插入文章内容自身中图片的方法。</p>
<p><strong>解决方法.</strong> 我们知道，到目前为止没有一款插件具有此功能，高兴的是，下面的这个循环/loop 能完成这个任务，他能搜寻文章内容中的图片，并显示这些图片。</p>
<p>1.在你主题的任何位置粘贴以下代码:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php php"><span>&lt;?php</span><span>if</span><span>(</span>have_posts<span>(</span><span>)</span><span>)</span><span>:</span><span>?&gt;</span><span>&lt;?php</span><span>while</span><span>(</span>have_posts<span>(</span><span>)</span><span>)</span><span>:</span>the_post<span>(</span><span>)</span>;<span>?&gt;</span> <span>&lt;?php</span><span>$szPostContent</span><span>=</span><span>$post</span><span>-&gt;</span><span>post_content</span>;<span>$szSearchPattern</span><span>=</span><span>'~&lt;img [^\&gt;]*\ /&gt;~'</span>;
 <span>// Run preg_match_all to grab all the images and save the results in $aPics</span><span>preg_match_all</span><span>(</span><span>$szSearchPattern</span><span>,</span><span>$szPostContent</span><span>,</span><span>$aPics</span><span>)</span>;
 <span>// Check to see if we have at least 1 image</span><span>$iNumberOfPics</span><span>=</span><span>count</span><span>(</span><span>$aPics</span><span>[</span><span>0</span><span>]</span><span>)</span>;
 <span>if</span><span>(</span><span>$iNumberOfPics</span><span>&gt;</span><span>0</span><span>)</span><span>{</span><span>// Now here you would do whatever you need to do with the images</span><span>// For this example the images are just displayed</span><span>for</span><span>(</span><span>$i</span><span>=</span><span>0</span>;<span>$i</span><span>&lt;</span><span>$iNumberOfPics</span>;<span>$i</span><span>++</span><span>)</span><span>{</span><span>echo</span><span>$aPics</span><span>[</span><span>0</span><span>]</span><span>[</span><span>$i</span><span>]</span>;<span>}</span>;<span>}</span>;
 <span>endwhile</span>;<span>endif</span>;<span>?&gt;</span></pre>
</div>
</div>
<p><strong>代码解释.</strong> 上面的代码基本上只是包含了一个简单的WordPress循环，仅仅不同的是我们使用了PHP和常规的表达式来搜寻插入到文章内容中的图片，如果找到的话，他们将会被显示出来。</p>
<p><strong>来源:</strong></p>
<p>Manipulate images from WordPress post content with regular expressions How to: Retrieve images in post content</p>
<h5>5.创建一个“发送到Twitter”的按钮</h5>
<p><strong>问题.</strong> 你在使用Twitter?如果是，我们确信你知道这个服务对于和朋友分享你在网上找到的感兴趣的事情是多么的好，所以，为什么不给你的读者一个直接发送你的文章连接的机会呢？而且这样也能带来更多访问者。</p>
<p><strong>解决方法.</strong> 这个技巧很容易完成，你唯一要做的事就是创建一个带有参数状态//status parameter 的连接给twitter，因为我们使用的WordPress 博客，我们能使用函数 the_permalink() 来获取页面的连接:</p>
<div class="wp_syntax">
<div class="code">
<pre class="html">&lt;a href="http://twitter.com/home?status=Currently reading &lt;?php the_permalink(); ?&gt;" title="Click to send this page to Twitter!" target="_blank"&gt;Share on Twitter&lt;/a&gt;</pre>
</div>
</div>
<p>很简单，不是吗？却很实用。</p>
<h5>6.使用普通引用代替Curly//波浪？ 引用</h5>
<p><strong>问题.</strong> 如果你是一个经常在网站上发布代码片段的开发人员，你可能遇到以下的问题：一个用户告诉你，你发布的代码无法正常显示，为什么？因为在默认情况下，WordPress将会转换普通引用为”smart quotes” ，从而破坏代码段。</p>
<p><strong>解决方法.</strong>去掉这些curly 引用，步骤如下：</p>
<p>1.打开当前主题的 funtions.php 文件。</p>
<p>2.粘贴以下代码:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php php"><span>&lt;?php</span>remove_filter<span>(</span><span>'the_content'</span><span>,</span><span>'wptexturize'</span><span>)</span>;<span>?&gt;</span></pre>
</div>
</div>
<p>3.保存文件，然后你可以跟破坏的代码段说再见了。</p>
<p><strong>代码解释.</strong> wptexturize()函数将自动转换普通引用为smart quotes ，使用the remove_filter() 函数后，我们告诉WordPress 我们不需要在文章内容中使用此函数。</p>
<p><strong>来源:</strong></p>
<p>How to get rid of curly quotes in your WordPress <a onclick="tagshow(event, 'blog');" href="javascript:;" target="_self"><span style="text-decoration: underline;"><strong>blog</strong></span></a></p>
<h5>7.拒绝非提交者请求的评论</h5>
<p><strong>问题.</strong> 垃圾评论对每个blogger都是一个很大的问题，当然Akismet能帮助你阻止垃圾评论，但能不能更彻底一点的防止垃圾评论呢？下面的代码将会在wp-comments-post.php文件被访问时寻找访问者(请求页面的URL)，如果访问者存在，并且是你的博客地址的URL的话，评论被允许，否则的话，会停止载入，评论也将无法发表。</p>
<p><strong>解决方法.</strong> 实现这个技巧，只需要在你当前主题的 functions.php 文件中加入以下代码：</p>
<div class="wp_syntax">
<div class="code">
<pre class="php php"><span>function</span>check_referrer<span>(</span><span>)</span><span>{</span><span>if</span><span>(</span><span>!</span><span>isset</span><span>(</span><span>$_SERVER</span><span>[</span><span>'HTTP_REFERER'</span><span>]</span><span>)</span>||<span>$_SERVER</span><span>[</span><span>'HTTP_REFERER'</span><span>]</span><span>==</span>“”<span>)</span><span>{</span>wp_die<span>(</span>__<span>(</span><span>'Please enable referrers in your browser, or, if you<span>\'</span>re a spammer, bugger off!'</span><span>)</span><span>)</span>;<span>}</span><span>}</span> 
add_action<span>(</span><span>'check_comment_flood'</span><span>,</span><span>'check_referrer'</span><span>)</span>;</pre>
</div>
</div>
<p><strong>来源:</strong></p>
<p>How to: Deny comment posting to no referrer requests</p>
<h5>8.在WordPress 导航上使用滑动门</h5>
<p><strong>问题.</strong> wp_list_pages() 和 wp_list_categories() 函数能允许很多事情，但他们却不允许你插入&lt;span&gt;元素来使用著名的 <a onclick="tagshow(event, 'CSS');" href="javascript:;" target="_self"><span style="text-decoration: underline;"><strong>CSS</strong></span></a> 滑动门技术，高兴的是，在PHP和一些常规表达式的帮助下，我们可以在WordPress 博客上使用这个了不起的技术。</p>
<p>因为大量的CSS 滑动门技术，我们在这里将不会介绍它是如何工作的，建议阅读<a href="http://www.alistapart.com/articles/slidingdoors/"><span style="color: #2e6ab1;">this excellent article</span></a>如果你想了解更多关于这个技术的知识。<a href="http://www.catswhocode.com/"><span style="color: #2e6ab1;">点击这里</span></a>来预览这个例子的效果。</p>
<p>1.创建你所需的图片，并且编辑你WordPress 主题的style.css 文件，这个有了例子:</p>
<div class="wp_syntax">
<div class="code">
<pre class="css css"><span>#nav</span>a<span>,</span><span>#nav</span>a<span>:visited</span><span>{</span><span>display</span><span>:</span><span>block</span>;<span>}</span><span>#nav</span>a<span>:hover</span><span>,</span><span>#nav</span>a<span>:active</span><span>{</span><span>background</span><span>:</span><span>url</span><span>(</span><span>images/tab-right.jpg</span><span>)</span><span>no-repeat</span><span><span>100</span>%</span><span>1px</span>;<span>float</span><span>:</span><span>left</span>;<span>}</span><span>#nav</span>a span<span>{</span><span>float</span><span>:</span><span>left</span>;<span>display</span><span>:</span><span>block</span>;<span>}</span><span>#nav</span>a<span>:hover</span>span<span>{</span><span>float</span><span>:</span><span>left</span>;<span>display</span><span>:</span><span>block</span>;<span>background</span><span>:</span><span>url</span><span>(</span><span>images/tab-left.jpg</span><span>)</span><span>no-repeat</span>0<span>1px</span>;<span>}</span></pre>
</div>
</div>
<p>2.接下来编辑 header.php 文件，根据你的需要复制下面其中的一段代码：</p>
<p><strong>列出你的页面</strong></p>
<div class="wp_syntax">
<div class="code">
<pre class="php php">&lt;ul id="nav"&gt;
&lt;li&gt;&lt;a href="<span>&lt;?php</span><span>echo</span>get_option<span>(</span><span>'home'</span><span>)</span>;<span>?&gt;</span>/"&gt;&lt;span&gt;Home&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;<span>&lt;?php</span><span>echo</span><span>preg_replace</span><span>(</span><span>'@\&lt;li([^&gt;]*)&gt;\&lt;a([^&gt;]*)&gt;(.*?)\&lt;\/a&gt;@i'</span><span>,</span><span>'&lt;li$1&gt;&lt;a$2&gt;&lt;span&gt;$3&lt;/span&gt;&lt;/a&gt;'</span><span>,</span>wp_list_pages<span>(</span><span>'echo=0&amp;orderby=name&amp;exlude=181&amp;title_li=&amp;depth=1'</span><span>)</span><span>)</span>;<span>?&gt;</span>&lt;/ul&gt;</pre>
</div>
</div>
<p><strong>列出你的分类</strong></p>
<div class="wp_syntax">
<div class="code">
<pre class="php php">&lt;ul id="nav"&gt;
&lt;li&gt;&lt;a href="<span>&lt;?php</span><span>echo</span>get_option<span>(</span><span>'home'</span><span>)</span>;<span>?&gt;</span>/"&gt;&lt;span&gt;Home&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;<span>&lt;?php</span><span>echo</span><span>preg_replace</span><span>(</span><span>'@\&lt;li([^&gt;]*)&gt;\&lt;a([^&gt;]*)&gt;(.*?)\&lt;\/a&gt;@i'</span><span>,</span><span>'&lt;li$1&gt;&lt;a$2&gt;&lt;span&gt;$3&lt;/span&gt;&lt;/a&gt;'</span><span>,</span>wp_list_categories<span>(</span><span>'echo=0&amp;orderby=name&amp;exlude=181&amp;title_li=&amp;depth=1'</span><span>)</span><span>)</span>;<span>?&gt;</span>&lt;/ul&gt;</pre>
</div>
</div>
<p><strong>代码解释</strong> 在这个例子中我们使用 wp_list_pages() 和 wp_list_categories()汉中中的 echo=0 变量，从而让你得到这个函数的结果，而不是直接显示出来，是被PHP 函数 preg_replace() 所用，最后在 &lt;li&gt; 和 &lt;a&gt; 中间添加 &lt;span&gt; 函数。</p>
<p><strong>来源:</strong></p>
<p>CSS Techniques: Using Sliding Doors with WordPress Navigation</p>
<h5>9.在你的WordPress 博客上显示随机头部图片</h5>
<p><strong>问题.</strong> 着并算不上是一个问题，但是很多WordPress 用户喜欢给他们的读者显示一个随机的头部图片。</p>
<p><strong>解决方法.</strong></p>
<p>1.首先，选择一些图片作为你博客头部的图片，命名为1.jpg,2.jpg,3.jpg 等，你可以使用你喜欢的许多图片。</p>
<p>2.上传这些图片到你当前主题的images文件夹里。</p>
<p>3.打开 header.php 插入以下代码到里面：</p>
<div class="wp_syntax">
<div class="code">
<pre class="php php"><span>$num</span><span>=</span><span>rand</span><span>(</span><span>1</span><span>,</span><span>10</span><span>)</span>;<span>//Get a random number between 1 and 10, assuming 10 is the total number of header images you have</span><span>&amp;</span>ltdiv id<span>=</span><span>"header"</span>style<span>=</span><span>"background:transparent url(images/.jpg) no-repeat top left;"</span><span>&gt;</span></pre>
</div>
</div>
<p>4.完成，你博客的每个页面或是文章的头部现在将会显示一张随机的图片。</p>
<p><strong>代码解释.</strong> 一点都不难，我们只是简单的使用PHP 函数 rand() 初始化了一个变量 $num ，从而在1和10之间获取一个随机数字，然后我们连接 变量 $num 的数字 到我们使用的主题的路径。</p>
<p><strong>来源：</strong></p>
<p>How to: Display a random header image</p>
<h5>10.列出你的预定文章</h5>
<p><strong>问题.</strong> 和很多Blogger 一样，你也许希望你的读者能更频繁的访问你的博客，或是订阅你的 RSS feed ，一个使他们对你以后的文章好奇的方法就是列出你预定文章的标题。</p>
<p><strong>解决方法.</strong> 打开你当前主题的任何文件，并粘贴以下代码:</p>
<div class="wp_syntax">
<div class="code">
<pre class="php php"><span>&lt;?php</span><span>$my_query</span><span>=</span><span>new</span>WP_Query<span>(</span><span>'post_status=future&amp;order=DESC&amp;showposts=5'</span><span>)</span>;<span>if</span><span>(</span><span>$my_query</span><span>-&gt;</span><span>have_posts</span><span>(</span><span>)</span><span>)</span><span>{</span><span>while</span><span>(</span><span>$my_query</span><span>-&gt;</span><span>have_posts</span><span>(</span><span>)</span><span>)</span><span>:</span><span>$my_query</span><span>-&gt;</span><span>the_post</span><span>(</span><span>)</span>;<span>?&gt;</span>&lt;li&gt;<span>&lt;?php</span>the_title<span>(</span><span>)</span>;<span>?&gt;</span>&lt;/li&gt;<span>&lt;?php</span><span>endwhile</span>;<span>}</span><span>?&gt;</span></pre>
</div>
</div>
<p><strong>代码解释.</strong> 在着段代码中，我们使用了WP_Query class 来创建了一个自定义的WordPress 查询//query ，向数据库发送了一条查询，来获取五条最近的预定文章列表，完成以后我们使用一条简单的WordPress 循环来显示它。</p>
<p> </p>
<p>via@听豆网</p>
<hr />
<p><small>© Jason for <a href="http://www.geekzhi.com">极客@志</a>, 2009. |
<a href="http://www.geekzhi.com/archives/719">Permalink</a> |
<a href="http://www.geekzhi.com/archives/719#comments">One comment</a> |
<? if (function_exists(‘cn_social_bookmarks‘)) { cn_social_bookmarks(); } ?>
<br/>
</small></p>
	标签：<a href="http://www.geekzhi.com/archives/tag/wordpress" title="WordPress" rel="tag">WordPress</a><br />

	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.geekzhi.com/archives/417" title="极客@志支持手机浏览啦！ (2009年03月28日)">极客@志支持手机浏览啦！</a> (1)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.geekzhi.com/archives/719/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>极客@志支持手机浏览啦！</title>
		<link>http://www.geekzhi.com/archives/417</link>
		<comments>http://www.geekzhi.com/archives/417#comments</comments>
		<pubDate>Sat, 28 Mar 2009 02:55:33 +0000</pubDate>
		<dc:creator>geekzhi</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[i思考]]></category>
		<category><![CDATA[历程]]></category>
		<category><![CDATA[极客@志历程]]></category>

		<guid isPermaLink="false">http://www.geekzhi.com/?p=417</guid>
		<description><![CDATA[之前安装了个PDA wordpress插件，经过测试能够在Oprea里面很好的显示，但是美中不足是太耗费流量并且不能评论和管理。然后看了看Oran的莓文化Wap页面还是蛮舒服的，准备借鉴一下。今天折腾了半天终于找到了个 wordpress插件叫做WP-T-Wap，页面挺舒服的，关键是可以评论和管理，以后发日志就方便啦！
顺便说一下，主页上面的WAP我是如何实现它的跳转呢？...]]></description>
			<content:encoded><![CDATA[<p>之前安装了个PDA wordpress插件，经过测试能够在Oprea里面很好的显示，但是美中不足是太耗费流量并且不能评论和管理。然后看了看Oran的莓文化Wap页面还是蛮舒服的，准备借鉴一下。今天折腾了半天终于找到了个 wordpress插件叫做<a href="http://wordpress.org/extend/plugins/wp-t-wap/">WP-T-Wap</a>，页面挺舒服的，关键是可以评论和管理，以后发日志就方便啦！</p>
<p>顺便说一下，主页上面的WAP我是如何实现它的跳转呢？其实页面有一个套用模板的功能，你只需要把你主题下的创建一个wap.php，内容填写为</p>
<p><span style="color: #ff6600;">&lt;?php /* Template Name: wap*/?&gt;<br />
&lt;?echo &#8216;&lt;meta http-equiv=&#8221;refresh&#8221; content=&#8221;0; url=http://www.geekzhi.com/wap&#8221;&gt;&#8217;;?&gt;</span></p>
<p>然后上传到你的主题所在目录，在添加页面那里选择这个wap模板就可以实现跳转啦！</p>
<hr />
<p><small>© geekzhi for <a href="http://www.geekzhi.com">极客@志</a>, 2009. |
<a href="http://www.geekzhi.com/archives/417">Permalink</a> |
<a href="http://www.geekzhi.com/archives/417#comments">One comment</a> |
<? if (function_exists(‘cn_social_bookmarks‘)) { cn_social_bookmarks(); } ?>
<br/>
</small></p>
	标签：<a href="http://www.geekzhi.com/archives/tag/wordpress" title="WordPress" rel="tag">WordPress</a>, <a href="http://www.geekzhi.com/archives/tag/%e6%9e%81%e5%ae%a2%e5%bf%97%e5%8e%86%e7%a8%8b" title="极客@志历程" rel="tag">极客@志历程</a><br />

	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.geekzhi.com/archives/698" title="最近休息了一段时间 (2009年04月14日)">最近休息了一段时间</a> (3)</li>
	<li><a href="http://www.geekzhi.com/archives/188" title="我们一直在行走——最近关于极客@志的感想 (2009年03月26日)">我们一直在行走——最近关于极客@志的感想</a> (1)</li>
	<li><a href="http://www.geekzhi.com/archives/741" title="今天是非常和谐的一天 (2009年06月4日)">今天是非常和谐的一天</a> (4)</li>
	<li><a href="http://www.geekzhi.com/archives/736" title="不过是坚持而已&mdash;&mdash;关于极客@志的前途问题 (2009年06月2日)">不过是坚持而已&mdash;&mdash;关于极客@志的前途问题</a> (2)</li>
	<li><a href="http://www.geekzhi.com/archives/719" title="10个杀手级WordPress技巧 (2009年04月21日)">10个杀手级WordPress技巧</a> (1)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.geekzhi.com/archives/417/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sitemap会影响搜索引擎蜘蛛吗？</title>
		<link>http://www.geekzhi.com/archives/97</link>
		<comments>http://www.geekzhi.com/archives/97#comments</comments>
		<pubDate>Tue, 24 Mar 2009 03:11:49 +0000</pubDate>
		<dc:creator>geekzhi</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[i科技]]></category>
		<category><![CDATA[Sitemap]]></category>
		<category><![CDATA[搜索引擎]]></category>

		<guid isPermaLink="false">http://www.geekzhi.com/?p=97</guid>
		<description><![CDATA[原文作者：chenry
原文链接：Do Sitemaps Affect Crawlers?
译者：Easwy
[ 译注 ]
看了这篇文章，你也要思考一下是否使用Sitemap生成器来生成Sitemap。对一个wordpress博客来说，它的网站链接结构很 好，不会影响搜索引擎蜘蛛(也有译做搜索引擎机器人)自然爬行，所以为了使Google尽快收录，最好使用Google XML Sitemaps生成器(Google XML网站地图生成器)来生成并提交你的Sitemap。我从一开始就使用了这个插件，发现Google收录我的新文章确实非常快，具体时间没有测试，应 该在半小时内。
译文首发于：http://easwy.com/blog/archives/do-sitemaps-effect-crawlers/
翻译：Easwy@Easwy的博客
[ 译文 ]
就像其它人一样，我也形成了习惯，好的坏的都有。最近正为一个客户的网站工作，就像我一直以来的做法那样，我创建了一个sitemap，把它提交给了搜索引擎。我开始思考这样做是否真的对网站有帮助，以及当我提交sitemap时的影响是什么。
我联系到我的一个客户，他有一个受欢迎的博客，使用了WordPress和Wordpress的Google XML Sitemaps生成器插 件。我请求他给我权限在他们的网站上安装一个监控搜索引擎蜘蛛行踪的脚本。对那些不知道Google XML网站地图生成器的人解释一下，这个插件当你每次在WordProess里编辑或创建文章时，都会生成一个新的Sitemap，并把Sitemap提 交给主要的搜索引擎。
我的客户经常在他们的博客上增加原创文章，通常一周2至3篇。我在他们网站上安装的脚本用PHP写的，会把搜索引擎蜘蛛每次访问Sitemap、每 次提交Sitemap、以及搜索引擎蜘蛛每次在网站上爬过的网页记录下来。这个脚本会把时间戳信息、IP地址、以及用户客户端记录到一个MySQL数据库 中。我也修改了一下Google XML网站地图生成器，加入了给搜索引擎提交Sitemap的时间戳。
看一看数据！
这个实验的目的是看是否提交Sitemap到Google和Yahoo可以缩短Google爬行和收录页面的时间。在这个博客的测试结果让人吃惊！ 当提交Sitemap时，Google搜索引擎蜘蛛访问新文章页面的平均时间是14分钟，Yahoo是245分钟。当不提交Sitemap时，搜索引擎搜 索引擎蜘蛛必须自己爬行到新的文章页面，Google用了1375分钟，而Yahoo用了1773分钟。这个平均值基于12篇文章计算，6篇提交 Sitemap，6篇不提交。






当算出这个结果时，我想这应该是一个错误。我回到我的网站(GR Web Designs)，然后迅速发表一篇文章并提交Sitemap到Google和Yahoo。30分钟后我检查我的监控脚本，Google已经访问过了，并且新页面已经被收录。Yahoo在Google后不久也这样做了。
看到搜索引擎蜘蛛在没有Sitemap的情况下爬行到新页面后的时间后，我一度以为这个网站的结构有问题，导致搜索引擎蜘蛛不能爬到新页面。但我和 其它人都测试了网站的爬行，没有发现问题。我甚至发现搜索引擎蜘蛛已经爬到包含这篇新文章链接的页面，但却没有立即访问这篇新文章，而是后来才访问的。
我正在写这篇文章时，发现了Rand的My Advice on Google Sitemaps &#8211; Verify, but Don&#8217;t Submit， 我由此感到很困惑。我提交Sitemap获得这么多好处，为什么还Rand告诉我不要提交Sitemap？在读完这篇文章后，我发现他对获得有价值的爬行 数据更感兴趣。我使用的是WordPress，所有的页面都允许搜索引擎蜘蛛爬，为什么不提交Sitemap呢？特别是提交了有这么大的好处。
对那些和这个试验站点类似的网站，也就是知道自己的网站不存在影响搜索引擎蜘蛛自然爬行的网站，我建议他们提交Sitemap，因为这会使网页更快 的被爬行和收录。如果你有一个网站你并不知道网站的结构是否有问题，我建议你不要提交网站地图，这可以帮助你确定你的网站结构是否存在问题。对那些有良好 链接结构的网站，为什么不今天就提交Sitemap，那事情进行的更迅速呢？
我很高兴听到SEOmoz社区说他们也在使用网站地图，记住，这个实验只是在一个网站上完成的，如果从你们那获得更多的回馈，我会做更多关于Sitemap的研究。
via译言

© geekzhi for 极客@志, 2009. &#124;
Permalink &#124;
2 comments &#124;



	标签：Sitemap, 搜索引擎

	相关日志
	
	无相关日志
	

]]></description>
			<content:encoded><![CDATA[<p>原文作者：chenry<br />
原文链接：<a href="http://www.seomoz.org/blog/do-sitemaps-effect-crawlers" target="_blank">Do Sitemaps Affect Crawlers?</a><br />
译者：<a href="http://www.yeeyan.com/space/show/easwy" target="_blank">Easwy</a></p>
<p><span><strong>[ 译注 ]</strong></span></p>
<p><em>看了这篇文章，你也要思考一下是否使用Sitemap生成器来生成Sitemap。对一个wordpress博客来说，它的网站链接结构很 好，不会影响搜索引擎蜘蛛(也有译做搜索引擎机器人)自然爬行，所以为了使Google尽快收录，最好使用Google XML Sitemaps生成器(Google XML网站地图生成器)来生成并提交你的Sitemap。我从一开始就使用了这个插件，发现Google收录我的新文章确实非常快，具体时间没有测试，应 该在半小时内。</em></p>
<p><em>译文首发于：<a title="Sitemap会影响搜索引擎蜘蛛吗？" href="http://easwy.com/blog/archives/do-sitemaps-effect-crawlers/" target="_blank">http://easwy.com/blog/archives/do-sitemaps-effect-crawlers/</a></em></p>
<p><em><span><span><strong>翻译</strong>：<a title="Easwy的博客" href="http://easwy.com/" target="_blank">Easwy</a>@</span><a title="Easwy的博客" href="http://easwy.com/blog/" target="_blank">Easwy的博客</a></span></em></p>
<p><span><strong>[ 译文 ]</strong></span></p>
<p>就像其它人一样，我也形成了习惯，好的坏的都有。最近正为一个客户的网站工作，就像我一直以来的做法那样，我创建了一个sitemap，把它提交给了搜索引擎。我开始思考这样做是否真的对网站有帮助，以及当我提交sitemap时的影响是什么。</p>
<p>我联系到我的一个客户，他有一个受欢迎的博客，使用了<a href="http://wordpress.org/" target="_blank">WordPress</a>和Wordpress的<a href="http://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/" target="_blank">Google XML Sitemaps生成器</a>插 件。我请求他给我权限在他们的网站上安装一个监控搜索引擎蜘蛛行踪的脚本。对那些不知道Google XML网站地图生成器的人解释一下，这个插件当你每次在WordProess里编辑或创建文章时，都会生成一个新的Sitemap，并把Sitemap提 交给主要的搜索引擎。</p>
<p>我的客户经常在他们的博客上增加原创文章，通常一周2至3篇。我在他们网站上安装的脚本用PHP写的，会把搜索引擎蜘蛛每次访问Sitemap、每 次提交Sitemap、以及搜索引擎蜘蛛每次在网站上爬过的网页记录下来。这个脚本会把时间戳信息、IP地址、以及用户客户端记录到一个MySQL数据库 中。我也修改了一下Google XML网站地图生成器，加入了给搜索引擎提交Sitemap的时间戳。</p>
<p><span><strong>看一看数据！</strong></span></p>
<p>这个实验的目的是看是否提交Sitemap到Google和Yahoo可以缩短Google爬行和收录页面的时间。在这个博客的测试结果让人吃惊！ 当提交Sitemap时，Google搜索引擎蜘蛛访问新文章页面的平均时间是14分钟，Yahoo是245分钟。当不提交Sitemap时，搜索引擎搜 索引擎蜘蛛必须自己爬行到新的文章页面，Google用了1375分钟，而Yahoo用了1773分钟。这个平均值基于12篇文章计算，6篇提交 Sitemap，6篇不提交。</p>
<div>
<div><img src="http://easwy.com/blog/uploads/2009/03/1.jpg" alt="" align="middle" /></div>
</div>
<div>
<div><img src="http://easwy.com/blog/uploads/2009/03/2.jpg" alt="" align="middle" /></div>
</div>
<p>当算出这个结果时，我想这应该是一个错误。我回到我的网站(<a href="http://www.gr-webdesigns.com/" target="_blank">GR Web Designs</a>)，然后迅速发表一篇文章并提交Sitemap到Google和Yahoo。30分钟后我检查我的监控脚本，Google已经访问过了，并且新页面已经被收录。Yahoo在Google后不久也这样做了。</p>
<p>看到搜索引擎蜘蛛在没有Sitemap的情况下爬行到新页面后的时间后，我一度以为这个网站的结构有问题，导致搜索引擎蜘蛛不能爬到新页面。但我和 其它人都测试了网站的爬行，没有发现问题。我甚至发现搜索引擎蜘蛛已经爬到包含这篇新文章链接的页面，但却没有立即访问这篇新文章，而是后来才访问的。</p>
<p>我正在写这篇文章时，发现了Rand的<a href="http://www.seomoz.org/blog/expert-advice-on-google-sitemaps-verify-but-dont-submit" target="_blank">My Advice on Google Sitemaps &#8211; Verify, but Don&#8217;t Submit</a>， 我由此感到很困惑。我提交Sitemap获得这么多好处，为什么还Rand告诉我不要提交Sitemap？在读完这篇文章后，我发现他对获得有价值的爬行 数据更感兴趣。我使用的是WordPress，所有的页面都允许搜索引擎蜘蛛爬，为什么不提交Sitemap呢？特别是提交了有这么大的好处。</p>
<p>对那些和这个试验站点类似的网站，也就是知道自己的网站不存在影响搜索引擎蜘蛛自然爬行的网站，我建议他们提交Sitemap，因为这会使网页更快 的被爬行和收录。如果你有一个网站你并不知道网站的结构是否有问题，我建议你不要提交网站地图，这可以帮助你确定你的网站结构是否存在问题。对那些有良好 链接结构的网站，为什么不今天就提交Sitemap，那事情进行的更迅速呢？</p>
<p>我很高兴听到SEOmoz社区说他们也在使用网站地图，记住，这个实验只是在一个网站上完成的，如果从你们那获得更多的回馈，我会做更多关于Sitemap的研究。</p>
<p style="text-align: right;">via译言</p>
<hr />
<p><small>© geekzhi for <a href="http://www.geekzhi.com">极客@志</a>, 2009. |
<a href="http://www.geekzhi.com/archives/97">Permalink</a> |
<a href="http://www.geekzhi.com/archives/97#comments">2 comments</a> |
<? if (function_exists(‘cn_social_bookmarks‘)) { cn_social_bookmarks(); } ?>
<br/>
</small></p>
	标签：<a href="http://www.geekzhi.com/archives/tag/sitemap" title="Sitemap" rel="tag">Sitemap</a>, <a href="http://www.geekzhi.com/archives/tag/%e6%90%9c%e7%b4%a2%e5%bc%95%e6%93%8e" title="搜索引擎" rel="tag">搜索引擎</a><br />

	<h4>相关日志</h4>
	<ul class="st-related-posts">
	<li>无相关日志</li>
	</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.geekzhi.com/archives/97/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
