<?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>Fwolf's Blog &#187; except - Fwolf's Blog</title>
	<atom:link href="http://www.fwolf.com/blog/post/tag/except/feed" rel="self" type="application/rss+xml" />
	<link>http://www.fwolf.com/blog</link>
	<description>随心·随意·随缘·努力～</description>
	<lastBuildDate>Wed, 07 Jul 2010 07:07:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>更改 WordPress 自动生成摘要的方式</title>
		<link>http://www.fwolf.com/blog/post/102</link>
		<comments>http://www.fwolf.com/blog/post/102#comments</comments>
		<pubDate>Mon, 19 Dec 2005 02:11:53 +0000</pubDate>
		<dc:creator>Fwolf</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[except]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.fwolf.com/blog/?p=102</guid>
		<description><![CDATA[WordPress 在搜索或列 Archives（按时间、按分类）的时候，在列表中是显示帖子摘要的。原来我觉得这样不好，就把列表中显示摘要改成了在列表中显示全部帖子，使用一段时间以后发现很不好。 首先列表会变得很臃肿，失去了列表的本身作用——方便用户寻找真正想要看的帖子，其次，在搜索引擎抓取页面的时候，把那些列表页面也抓了过去，但随着帖子的不断增多，列表的更新远快于搜索引擎缓存的更新，用户使用搜索引擎进来以后，在列表中就很难找到目标了。 这样在列表中只显示摘要的优势就体现出来了，首先页面很清爽，用户可以清楚的找到要查看的目标，然后搜索引擎抓取内容的时候，会更多的关注页面的 Permalink，用户也就会通过搜索直达目标帖子，方便了用户。 打开 WordPress 的wp-includes\functions-formatting.php，找到其中的 function wp_trim_excerpt(about line 741)，将如下代码 $excerpt_length = 55; $words = explode&#40;' ', $text, $excerpt_length + 1&#41;; if &#40;count&#40;$words&#41; &#62; $excerpt_length&#41; &#123; array_pop&#40;$words&#41;; array_push&#40;$words, '[...]'&#41;; $text = implode&#40;' ', $words&#41;; &#125; 更改为 $excerpt_length = 3; $words = explode&#40;&#34;\n&#34;, $text, $excerpt_length + 1&#41;; if &#40;count&#40;$words&#41; &#62; $excerpt_length&#41; &#123; array_pop&#40;$words&#41;; [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress 在搜索或列 Archives（按时间、按分类）的时候，在列表中是显示帖子摘要的。原来我觉得这样不好，就把列表中显示摘要改成了在列表中显示全部帖子，使用一段时间以后发现很不好。</p>

<p>首先列表会变得很臃肿，失去了列表的本身作用——方便用户寻找真正想要看的帖子，其次，在搜索引擎抓取页面的时候，把那些列表页面也抓了过去，但随着帖子的不断增多，列表的更新远快于搜索引擎缓存的更新，用户使用搜索引擎进来以后，在列表中就很难找到目标了。</p>

<p>这样在列表中只显示摘要的优势就体现出来了，首先页面很清爽，用户可以清楚的找到要查看的目标，然后搜索引擎抓取内容的时候，会更多的关注页面的 Permalink，用户也就会通过搜索直达目标帖子，方便了用户。</p>

<p>打开 WordPress 的<code>wp-includes\functions-formatting.php</code>，找到其中的 function wp_trim_excerpt(about line 741)，将如下代码</p>


<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">		<span style="color: #000088;">$excerpt_length</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">55</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$words</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #339933;">,</span> <span style="color: #000088;">$excerpt_length</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$words</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #000088;">$excerpt_length</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #990000;">array_pop</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$words</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #990000;">array_push</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$words</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'[...]'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">' '</span><span style="color: #339933;">,</span> <span style="color: #000088;">$words</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span></pre></div></div>


<p>更改为</p>


<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">		<span style="color: #000088;">$excerpt_length</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$words</span> <span style="color: #339933;">=</span> <span style="color: #990000;">explode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$text</span><span style="color: #339933;">,</span> <span style="color: #000088;">$excerpt_length</span> <span style="color: #339933;">+</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">count</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$words</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&gt;</span> <span style="color: #000088;">$excerpt_length</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #990000;">array_pop</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$words</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #990000;">array_push</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$words</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&lt;p /&gt;......&lt;a href=&quot;'</span> <span style="color: #339933;">.</span> get_permalink<span style="color: #009900;">&#40;</span><span style="color: #000088;">$post</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&quot;&gt;[阅读全文]&lt;/a&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000088;">$text</span> <span style="color: #339933;">=</span> <span style="color: #990000;">implode</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$words</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span></pre></div></div>


<p>就可以了，WordPress 默认的生成摘要是用空格来判断的，就是取到55个空格结束，这适用于西方采用空格作为词间隔的语言，但中文是不分词的，所以我使用读取3行的方式，取前3行，对哪种语言都是适用的。</p>

<h4>Update @ 2007-02-09</h4>

<p>升级到 WordPress 2.1以后，这个修改的地点变为<code>wp-includes/formatting.php</code>，第780行左右。</p>

<h4>Update @ 2007-02-26</h4>

<p>编写了一个<a href="296">插件</a>，不用再手工修改代码了。</p>

<h4>Update @ 2009-08-25</h4>

<p><a href="http://myfairland.net/">Betty</a>全面<a href="http://myfairland.net/wordpress-excerpt/">总结</a>了几种中文摘要方式，形成了一个<a href="http://myfairland.net/wp-utf8-excerpt/">综合的适合中文的摘要插件</a>，并且提交到了<a href="http://wordpress.org/extend/plugins/wp-utf8-excerpt/">WordPress 官网</a>，带有简单的配置后台，很不错。</p>

	Tags: <a href="http://www.fwolf.com/blog/post/tag/except" title="except" rel="tag">except</a>, <a href="http://www.fwolf.com/blog/post/tag/php" title="PHP" rel="tag">PHP</a>, <a href="http://www.fwolf.com/blog/post/tag/plugin" title="plugin" rel="tag">plugin</a>, <a href="http://www.fwolf.com/blog/post/tag/wordpress" title="WordPress" rel="tag">WordPress</a><br />

	<h4>Related posts</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.fwolf.com/blog/post/296" title="WordPress 插件编写简例 (2007-02-26)">WordPress 插件编写简例</a> (17)</li>
	<li><a href="http://www.fwolf.com/blog/post/87" title="搞定WordPress的Permalinks (2005-11-07)">搞定WordPress的Permalinks</a> (6)</li>
	<li><a href="http://www.fwolf.com/blog/post/241" title="如何为网站添加sitemap文件 (2006-10-17)">如何为网站添加sitemap文件</a> (3)</li>
	<li><a href="http://www.fwolf.com/blog/post/402" title="升级WP旧模板，让它支持Widgets (2008-05-11)">升级WP旧模板，让它支持Widgets</a> (4)</li>
	<li><a href="http://www.fwolf.com/blog/post/366" title="WordPress升级到2.3.1 (2007-11-02)">WordPress升级到2.3.1</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://www.fwolf.com/blog/post/102/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>
