<?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>WGM@CN &#187; Wordpress</title>
	<atom:link href="http://wgmcn.com/blog/category/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://wgmcn.com</link>
	<description>像癫像傻又像疯</description>
	<lastBuildDate>Wed, 12 Oct 2011 06:08:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>WordPress theme hack – 自定义文章摘要显示和长度</title>
		<link>http://wgmcn.com/blog/wordpress/953.html</link>
		<comments>http://wgmcn.com/blog/wordpress/953.html#comments</comments>
		<pubDate>Tue, 31 Aug 2010 15:56:07 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[the_excerpt]]></category>
		<category><![CDATA[Wordpress Theme]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=953</guid>
		<description><![CDATA[WordPress有一个显示文章摘要的函数 the_excerpt()，这个函数可以用来显示博客文章的摘要内容，这个函数的需要使用在一个循环里面，例如下面的效果： &#60;?php if(have_posts()): ?&#62; &#60;?php while(have_posts()) : the_post();?&#62; //...其他代码 &#60;?php the_excerpt(''); ?&#62; //...其他代码 &#60;?php endwhile; ?&#62; //...其他代码 the_excerpt()要用在展示文章的一个循环里面。Wordpress自带的功能只是去除了HTML相关标签内容，例如图片、连接等，但是显示的文章长度一点都厚道，有时候就是一整篇仅仅是去掉图片和格式的文章，看着何其蛋疼啊。下面就说说如何更好地显示文章摘要。 一、手动添加摘要 在编写文章的时候，文章编辑框下面会有个“摘要(Excerpt)”的框框，里面就是写摘要的地方了，填写你的摘要，然后，调用the_excerpt()的时候就会显示这里的内容了。只是需要手动添加，有点麻烦。 二、修改主题添加函数 上面说过，the_excerpt()函数主要的缺点就是生成的长度不够厚道，那么我们就把这个长度再缩短到适当的字数就好了。好了，函数奉上： /** * 截取文章摘要 * */ function utf8_trim($str) { $len = strlen($str); for ($i=strlen($str)-1; $i&#62;=0; $i-=1){ $hex .= ' '.ord($str[$i]); $ch = ord($str[$i]); if (($ch &#38; 128)==0) return(substr($str,0,$i)); if (($ch &#38; 192)==192) return(substr($str,0,$i)); [...]]]></description>
			<content:encoded><![CDATA[<div id='lw_context_ads'><p style="text-align: center;"><img class="aligncenter" src="http://photo5.yupoo.com/20071030/201602_335919476_mwxnkboq.jpg" alt="" /></p>
<p><strong>WordPress</strong>有一个显示文章摘要的函数 <strong>the_excerpt</strong>()，这个函数可以用来显示博客文章的摘要内容，这个函数的需要使用在一个循环里面，例如下面的效果：</p>
<pre class="brush:php">&lt;?php if(have_posts()): ?&gt;

&lt;?php while(have_posts()) : the_post();?&gt;

//...其他代码

&lt;?php the_excerpt(''); ?&gt;

//...其他代码

&lt;?php endwhile; ?&gt;

//...其他代码</pre>
<p>the_excerpt()要用在展示文章的一个循环里面。Wordpress自带的功能只是去除了HTML相关标签内容，例如图片、连接等，但是显示的文章长度一点都厚道，有时候就是一整篇仅仅是去掉图片和格式的文章，看着何其蛋疼啊。下面就说说如何更好地显示文章摘要。</p>
<p><strong>一、手动添加摘要</strong></p>
<p>在编写文章的时候，文章编辑框下面会有个“摘要(Excerpt)”的框框，里面就是写摘要的地方了，填写你的摘要，然后，调用the_excerpt()的时候就会显示这里的内容了。只是需要手动添加，有点麻烦。</p>
<p><strong>二、修改主题添加函数</strong></p>
<p>上面说过，the_excerpt()函数主要的缺点就是生成的长度不够厚道，那么我们就把这个长度再缩短到适当的字数就好了。好了，函数奉上：</p>
<pre class="brush:php">/**

* 截取文章摘要

*

*/

function utf8_trim($str) {

$len = strlen($str);

for ($i=strlen($str)-1; $i&gt;=0; $i-=1){

$hex .= ' '.ord($str[$i]);

$ch = ord($str[$i]);

if (($ch &amp; 128)==0) return(substr($str,0,$i));

if (($ch &amp; 192)==192) return(substr($str,0,$i));

}

return($str.$hex);

}

function mul_excerpt ($excerpt) {

$myexcerpt = substr($excerpt,0,383);//此处为文章摘要的长度

return utf8_trim($myexcerpt) . '... ';

}

add_filter('the_excerpt',	'mul_excerpt');</pre>
<p>将上面的代码复制到主题中的function.php的末尾，看看效果，是不是已经达到了你想要的长度呢？呵呵。</p>
<p><strong>三、插件</strong></p>
<p>这也是最简单的方法之一了，插件之多，多于牛毛，而且效果有些也很出众，例如带有缩略图的功能等，这里也不再叙述，请自行Google&#8211;Wordpress文章摘要插件</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/wordpress/953.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress theme hack – 自动截取文章内容作为标题</title>
		<link>http://wgmcn.com/blog/wordpress/901.html</link>
		<comments>http://wgmcn.com/blog/wordpress/901.html#comments</comments>
		<pubDate>Sun, 22 Aug 2010 13:38:30 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=901</guid>
		<description><![CDATA[这个功能主要是给一些懒人或者像我一样用博客来Tweet的家伙，自动提取文章的某段内容作为标题，将下面的代码添加到博客主题的function.php中。代码很简单，注释在代码中 /** * 截取字符串 */ function dm_strimwidth($str ,$start , $width ,$trimmarker ){ $output = preg_replace('/^(?:[\x00-\x7F]&#124;[\xC0-\xFF][\x80-\xBF]+){0,'.$start.'}((?:[\x00-\x7F]&#124;[\xC0-\xFF][\x80-\xBF]+){0,'.$width.'}).*/s','\1',$str); //上面preg_replace内的为正则表达，俺是菜鸟 return $output.$trimmarker; } /** * 自动生成标题 */ function creat_status_title( $post_ID ){ if($_POST['post_title'] != '') return;//判断是否有标题，如果有则不用生成 $_POST['post_title'] = dm_strimwidth(strip_tags($_POST['post_content']) ,0 ,12 ,'……' );//截取文章内容从0-12个中文字作为标题，注意一个中文字为两个字符，即为两个英文字母的大小 $my_post = array(); $my_post['ID'] = $post_ID; $my_post['post_title'] = $_POST['post_title']; wp_update_post( $my_post );//更新文章标题 } /** * 添加钩子 */ [...]]]></description>
			<content:encoded><![CDATA[<div id='lw_context_ads'><p style="text-align: center;"><img class="aligncenter" src="http://photo5.yupoo.com/20071030/201602_335919476_mwxnkboq.jpg" alt="" /></p>
<p>这个功能主要是给一些懒人或者像我一样用博客来Tweet的家伙，自动提取文章的某段内容作为标题，将下面的代码添加到博客主题的function.php中。代码很简单，注释在代码中</p>
<pre class="brush:php">/**

* 截取字符串

*/

function dm_strimwidth($str ,$start , $width ,$trimmarker ){

$output = preg_replace('/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$start.'}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$width.'}).*/s','\1',$str);

//上面preg_replace内的为正则表达，俺是菜鸟

return $output.$trimmarker;

}

/**

* 自动生成标题

*/

function creat_status_title( $post_ID ){

if($_POST['post_title'] != '') return;//判断是否有标题，如果有则不用生成

$_POST['post_title'] = dm_strimwidth(strip_tags($_POST['post_content']) ,0 ,12 ,'……' );//截取文章内容从0-12个中文字作为标题，注意一个中文字为两个字符，即为两个英文字母的大小

$my_post = array();

$my_post['ID'] = $post_ID;

$my_post['post_title'] = $_POST['post_title'];

wp_update_post( $my_post );//更新文章标题

}

/**

* 添加钩子

*/

add_action('publish_post', 'creat_status_title', 0);//挂上钩子，即在文章发布、更新的时候执行creat_status_title()函数

/**

* 完结

*/</pre>
<p>此代码似乎不能去除文章内容中的html标签之类的，失败。不过，想修改的朋友可参考Wordpress自带的the_excerpt()（输出文章摘要）函数进行修改。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/wordpress/901.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>异步加载WordPress插件的Javascript和CSS</title>
		<link>http://wgmcn.com/blog/wordpress/848.html</link>
		<comments>http://wgmcn.com/blog/wordpress/848.html#comments</comments>
		<pubDate>Tue, 17 Aug 2010 18:18:38 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=848</guid>
		<description><![CDATA[PS：此方法实现了异步加载成功，但是在第一次载入页面（js）的情况下，是显示不了效果的（至少我的插件是这样，各位童鞋可以试试），之后再刷新或者再浏览其他页面的话，会显示效果了-_-!!!，求解！！！同时大家可以参考这里，简洁的代码：Xhr异步按顺序加载script。 因为博客里面有需要用到代码插件，之前的某些博文，几乎只集中在WordPress这个分类内。相信大家都知道，Wordpress的插件加载的话，是整个博客所有页面都会进行加载的，而且这个代码插件的Javascript代码竟然有10个之多，试想一下假如每个页面都进行加载的话，是多么的浪费资源和影响用户体验。只能改进啦，改进，翻资料，测试，终于最后算是成功了，耗费了一个下午的时间。下面通过我所用的插件和方法来说说思路。 一、插件Syntax Highlighter and Code Prettifier Plugin for WordPress 这款插件的代码作用标签为&#60;pre&#62;，使用方法类似&#60;pre class=&#8221;brush:php&#8221;&#62;，其中php的位置可以替换为其他你需要显示的代码名称，如c#、xml等。 二、判断标签&#60;pre&#62; 当然，假如博客里面有其他地方还用到&#60;pre&#62;标签的话，换需要更多的属性判断。 这里我采用document.getElementsByTagName方法： if ( document.getElementsByTagName('pre').length &#62; 0 ) { ｝ 用length来判断是否存在着标签，然后执行JS和CSS的加载行为。 三、同步加载Javascript 这个也是最难解决的问题，其实最难的问题，也就是夸浏览器，如万恶的IE。最后Google到了算是比较完美的方法，贡献。 function GetHttpRequest() { if ( window.XMLHttpRequest ) // Gecko return new XMLHttpRequest() ; else if ( window.ActiveXObject ) // IE return new ActiveXObject("MsXml2.XmlHttp") ; } function AjaxPage(sId, url){ var [...]]]></description>
			<content:encoded><![CDATA[<div id='lw_context_ads'><p style="text-align: center;"><img class="aligncenter" src="http://photo5.yupoo.com/20071030/201602_335919476_mwxnkboq.jpg" alt="" /></p>
<p> <span style="color: #ff0000;">PS：此方法实现了异步加载成功，但是在第一次载入页面（js）的情况下，是显示不了效果的（至少我的插件是这样，各位童鞋可以试试），之后再刷新或者再浏览其他页面的话，会显示效果了-_-!!!，求解！！！同时大家可以参考这里，简洁的代码：</span><a href="http://www.cnblogs.com/bluedream2009/archive/2010/05/10/1732158.html"><span style="color: #ff0000;">Xhr异步按顺序加载script</span></a><span style="color: #ff0000;">。</span></p>
<p>因为博客里面有需要用到代码插件，之前的某些博文，几乎只集中在<strong>WordPress</strong>这个分类内。相信大家都知道，Wordpress的插件加载的话，是整个博客所有页面都会进行加载的，而且这个代码插件的Javascript代码竟然有10个之多，试想一下假如每个页面都进行加载的话，是多么的浪费资源和影响用户体验。只能改进啦，改进，翻资料，测试，终于最后算是成功了，耗费了一个下午的时间。下面通过我所用的插件和方法来说说思路。</p>
<p>一、插件<strong>Syntax Highlighter and Code Prettifier Plugin for WordPress</strong></p>
<p>这款插件的代码作用标签为&lt;pre&gt;，使用方法类似&lt;pre class=&#8221;brush:php&#8221;&gt;，其中php的位置可以替换为其他你需要显示的代码名称，如c#、xml等。</p>
<p>二、判断标签&lt;pre&gt;</p>
<p>当然，假如博客里面有其他地方还用到&lt;pre&gt;标签的话，换需要更多的属性判断。</p>
<p>这里我采用document.getElementsByTagName方法：</p>
<pre class="brush:js">if ( document.getElementsByTagName('pre').length &gt; 0 ) {

｝</pre>
<p>用length来判断是否存在着标签，然后执行JS和<strong>CSS</strong>的加载行为。</p>
<p>三、同步加载<strong>Javascript</strong></p>
<p>这个也是最难解决的问题，其实最难的问题，也就是夸浏览器，如万恶的IE。最后Google到了算是比较完美的方法，贡献。</p>
<pre class="brush:js">function GetHttpRequest()

{

if ( window.XMLHttpRequest ) // Gecko

return new XMLHttpRequest() ;

else if ( window.ActiveXObject ) // IE

return new ActiveXObject("MsXml2.XmlHttp") ;

}

function AjaxPage(sId, url){

var oXmlHttp = GetHttpRequest() ;

oXmlHttp.onreadystatechange = function()

{

if ( oXmlHttp.readyState == 4 )

{

if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 )

{

IncludeJS( sId, url, oXmlHttp.responseText );

}

else

{

alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ;

}

}

}

oXmlHttp.open('GET', url, true);

oXmlHttp.send(null);

}

function IncludeJS(sId, fileUrl, source)

{

if ( ( source != null ) &amp;&amp; ( !document.getElementById( sId ) ) ){

var oHead = document.getElementsByTagName('head');

var oScript = document.createElement( "script" );

oScript.language = "javascript";

oScript.type = "text/javascript";

oScript.id = sId;

oScript.defer = true;

oScript.text = source;

oHead[oHead.length-1].appendChild( oScript );

}

}</pre>
<p>上面的代码，主要是用来同步多个JS文件的加载顺序，因为后面加载上来的JS文件可以会用到前面加载的文件的对象，必须前面的加载才能正常运行。而一般的异步加载JS文件加载顺序都是不同步的，也就是说，在声明加载了之后，会接着加载后面的文件，而不理会这个文件是否已经下载完成。</p>
<p>举个例子，A文件和B文件，B需要用到A的对象。A在B之前被声明要下载，然后A开始下载，然而Javascript继续运行，声明B，然后B下载，最后，B假如先于A下载完成，出现JS错误。</p>
<p><span style="color: #ff0000;">PS：已经写在HTMl里面的&lt;script type=&#8217;text/javascript&#8217; src=&#8217;&#8230;&#8230;..&#8217;&gt;&lt;/script&gt;是会被按照顺序执行的，加载完成后才再执行下面的一行，所以想想假如有10个JS文件要加载，那个等待时间，HLL地。</span></p>
<p>四、修改插件Javascript的加载方法</p>
<p>一般插件加载Javascript和CSS都会用到类似的钩子函数</p>
<pre class="brush:php">add_action('wp_header','xxx_header');

add_action('wp_footer','xxx_footer');</pre>
<p>而在这些函数（xxx_header、xxx_footer）里面，一般Javascript和CSS的声明都是直接输出的，所以需要在这里面进行修改。我们只需把要加载的JS和CSS文件的地址传递给处理的函数就可以了</p>
<p>以我的插件Syntax Highlighter and Code Prettifier Plugin for WordPress为例子</p>
<pre class="brush:js">&lt;?php

function highlighter_footer() {

?&gt;

&lt;script type="text/javascript"&gt;

if ( document.getElementsByTagName('pre').length &gt; 0 ) {

var jsS = new Array(

"http://wgmcn.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shCore.js",

"http://wgmcn.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushCss.js",

"http://wgmcn.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushJScript.js",

"http://wgmcn.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushPhp.js",

"http://wgmcn.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushSql.js",

"http://wgmcn.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/shBrushXml.js",

"http://wgmcn.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/scripts/clipboard.js"

)

var styleS = new Array(

"http://wgmcn.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/styles/shCore.css",

"http://wgmcn.com/wp-content/plugins/syntax-highlighter-and-code-prettifier/styles/shThemeDefault.css"

)

MiniSite.StyleLoader.load(styleS,function(){});

MiniSite.JsLoader.load(jsS,function(){});

}

&lt;/script&gt;

&lt;?php

}

add_action('wp_footer','highlighter_footer');

?&gt;</pre>
<p>然后，处理地址的函数</p>
<pre class="brush:js">var	MiniSite=new Object();

MiniSite.Browser={

ie:/msie/.test(window.navigator.userAgent.toLowerCase()),

moz:/gecko/.test(window.navigator.userAgent.toLowerCase()),

opera:/opera/.test(window.navigator.userAgent.toLowerCase()),

safari:/safari/.test(window.navigator.userAgent.toLowerCase())

};

function loader(sUrl,	i, ltype)	{

var	sHead	=	document.getElementsByTagName('head');

var	_load	=	document.createElement(ltype);

if (i	== sUrl.length)

{

return;

}

if (ltype	== 'script')

{

AjaxPage(	"script_ajax_" + i,	sUrl[i]	);

return loader(sUrl,	i+1, ltype);/*递归求解*/

}

else if	(ltype ==	'stylesheet')

{

var	_load=document.createElement('link');

_load.href = sUrl[i];

_load.rel='stylesheet';

_load.type='text/css';

sHead[sHead.length-1].appendChild(_load);

return loader(sUrl,	i+1, ltype);/*递归求解*/

}

else {

alert('else');

return;

}

}

MiniSite.JsLoader={

load:function(sUrl,	fCallback){

loader(sUrl, 0,	'script');

fCallback();

}

};

MiniSite.StyleLoader = {

load:function(sUrl,	fCallback){

loader(sUrl, 0,	'stylesheet');

fCallback();

}

};</pre>
<p>上面stylesheet的递归求解其实可以用到for循环来完成的，或者Javascript的加载也可以，没有试验过。在之前的版本中（不兼容IE）就是用for循环来进行异步加载的，并且可以判断各个类型浏览器的状态改变，后因同步问题改为递归形式，现在也懒得改动了。</p>
<p>将上面的Javascript代码全部复制进一个JS文件，命名为load_ajax.js，然后在Footer模板上加上。记得要加在&lt;?php wp_footer(); ?&gt;之前哦。</p>
<pre class="brush:js">&lt;script type='text/javascript' src='&lt;?php bloginfo('template_directory'); ?&gt;/js/load_ajax.js'&gt;&lt;/script&gt;</pre>
<p>然后，根据插件的输出，先判断是否存在&lt;pre&gt;标签，如果存在，则添加JS和CSS文件地址，使用load_ajax.js里面的函数加载JS和CSS；如果不存在，则不加载。这个load_ajax.js文件仅仅有2k大小，而且可以多个<strong>插件</strong>同时使用，并且可以用在广告和页面效果的实现上，实在是十分方便。（当然，插件还是要自己修改，这里有一点点麻烦，特别是插件升级的时候要注意备份）</p>
<p>如果童鞋们有更好的方法，希望告知，同时有任何疑问，可以在下面留言或者Email我，点页面最下面的Gmail图标。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/wordpress/848.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>禁用WordPress的Auto Draf和Revisions</title>
		<link>http://wgmcn.com/blog/wordpress/836.html</link>
		<comments>http://wgmcn.com/blog/wordpress/836.html#comments</comments>
		<pubDate>Sat, 14 Aug 2010 07:43:34 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Auto Draf]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[Revisions]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=836</guid>
		<description><![CDATA[WordPress的Auto Draf和Revisions的确是很烦人的问题，网上有超多的解决方法，插件，修改代码，有些很全面，有些比较局部，经过一轮测试，终于算是暂时的成功，记录并分享一下，仅以现在版本3.0.1为例子。 一、wp-config.php 此处只需要在 define (&#8216;WPLANG&#8217;, &#8221;); 下添加一行代码define (&#8216;WP_POST_REVISIONS&#8217;, false);，每个人的配置不同，这里可能也不尽相同，效果如下 define ('WPLANG', ''); define ('WP_POST_REVISIONS', false); 此处修改完毕，基本可以禁止了wordpress后台的多版本控制功能。 二、wp-admin/includes/post.php 该文件可谓掌握Auto Draf生死大权 用编辑器（推荐Editplus，简单易用）打开该文件，找到 get_default_post_to_edit 这个函数，应该如下(省略部分不重要的内容)： function get_default_post_to_edit( $post_type = 'post', $create_in_db = false ) { //...... if ( $create_in_db ) { Cleanup old auto-drafts more than 7 days old $old_posts = $wpdb-&#62;get_col( "SELECT ID FROM $wpdb-&#62;posts WHERE [...]]]></description>
			<content:encoded><![CDATA[<div id='lw_context_ads'><p style="text-align: center;"><img class="aligncenter" src="http://photo5.yupoo.com/20071030/201602_335919476_mwxnkboq.jpg" alt="" /></p>
<p><strong>WordPress</strong>的<strong>Auto Draf</strong>和<strong>Revisions</strong>的确是很烦人的问题，网上有超多的解决方法，<strong>插件</strong>，修改<strong>代码</strong>，有些很全面，有些比较局部，经过一轮测试，终于算是暂时的成功，记录并分享一下，仅以现在版本3.0.1为例子。</p>
<p>一、wp-config.php</p>
<p>此处只需要在 define (&#8216;WPLANG&#8217;, &#8221;); 下添加一行代码define (&#8216;WP_POST_REVISIONS&#8217;, false);，每个人的配置不同，这里可能也不尽相同，效果如下</p>
<pre name="code" class="brush:php">define ('WPLANG', '');
define ('WP_POST_REVISIONS', false);
</pre>
<p>此处修改完毕，基本可以禁止了wordpress后台的多版本控制功能。</p>
<p>二、wp-admin/includes/post.php</p>
<p>该文件可谓掌握Auto Draf生死大权</p>
<p>用编辑器（推荐Editplus，简单易用）打开该文件，找到 get_default_post_to_edit 这个函数，应该如下(省略部分不重要的内容)：</p>
<pre name="code" class="brush:php">function get_default_post_to_edit( $post_type = 'post', $create_in_db = false ) {
//......

if ( $create_in_db ) {
Cleanup old auto-drafts more than 7 days old
$old_posts = $wpdb-&gt;get_col( "SELECT ID FROM $wpdb-&gt;posts WHERE post_status = 'auto-draft' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) &gt; post_date" );
foreach ( (array) $old_posts as $delete )
wp_delete_post( $delete, true ); // Force delete
$post_id = wp_insert_post( array( 'post_title' =&gt; __( 'Auto Draft' ), 'post_type' =&gt; $post_type, 'post_status' =&gt; 'auto-draft' ) );
$post = get_post( $post_id );
} else {
//...
}
</pre>
<p>上面这段代码在点击Add New（添加新文章）的时候，先检查数据库里面标记为auto-draft并且在7前的数据，并进行删除，然后新建一个auto-draft，作为当前文章打开，也就是说，无论你是否有保存草稿、发布，这个auto-draft在你新建文章的那一刻就已经存在，假如你不去理会就此关掉这个“无题”文章的话，次auto-draft依然存在，而下次在新建的时候，又会是新的一个……如此如此，你文章的ID就这么HLL地断了，数据库的垃圾也越来越多。</p>
<p>如何修改呢？请看下面：</p>
<pre name="code" class="brush:php">function get_default_post_to_edit( $post_type = 'post', $create_in_db =  false ) {
//......

if ( $create_in_db ) {
// Cleanup old auto-drafts more than 7 days old
//$old_posts = $wpdb-&gt;get_col( "SELECT ID FROM $wpdb-&gt;posts WHERE post_status = 'auto-draft' AND DATE_SUB( NOW(), INTERVAL 7 DAY ) &gt; post_date" );
//foreach ( (array) $old_posts as $delete )
//wp_delete_post( $delete, true ); // Force delete
$post_auto_draft = $wpdb-&gt;get_row( "SELECT * FROM $wpdb-&gt;posts WHERE post_type = '$post_type' AND post_status = 'auto-draft' LIMIT 1" );
if ( $post_auto_draft ) {
$post = $post_auto_draft;
} else {
$post = get_post( wp_insert_post( array( 'post_title' =&gt; __( 'Auto Draft' ), 'post_type' =&gt; $post_type, 'post_status' =&gt; 'auto-draft' ) ) );
}
//$post_id = wp_insert_post( array( 'post_title' =&gt; __( 'Auto Draft' ), 'post_type' =&gt; $post_type, 'post_status' =&gt; 'auto-draft' ) );
//$post = get_post( $post_id );
} else {
//...
}
</pre>
<p>注释掉的部分就是原来的代码（也就是这些代码不会运行了），新增的代码意思是，在增加一个auto-draft的时候先检测有无一个存在，如果存在，则打开已经存在的，这样，就不会增加无谓的ID了。</p>
<p>新增的部分将原代码分成上下两部分，上面一部分是删除7天前的auto-draft，下面是新建，假如觉得有必要删除而不想进数据库操作的话，把上面的部分注释去掉就可以了。</p>
<p>附带删除auto-draft，inherit的sql语句(<span style="color: #ff0000;">请谨慎使用</span>)</p>
<pre name="code" class="brush:sql">delete from wp_posts where post_status = 'inherit'

delete from wp_posts where post_status = 'auto-draft'
</pre>
<p>三、<strong>Disable autosave插件</strong></p>
<p>这个是<a title="禁用 WordPress自动保存的插件" href="http://http://www.williamlong.info/archives/1491.html" target="_blank">月光</a>写的一个插件，虽然只有寥寥几行代码，但是却无比强大。</p>
<p>装这个插件的原因是由于在修改已经发布的文章之后，即使禁止了Revisions，但是万恶的autosave功能一样还是会生成一条inherit的记录来保存修改之前的文章，这个就是我无法不用这个插件的原因。</p>
<p>最后，修改Wordpress的源文件（第二条）是不对的，也是不安全，并且也是麻烦的，随着升级，这些更改会被覆盖。所以，大家有插件还是用插件，能在wp-config里面配置还是配置下就好，<span style="color: #ff0000;">最好就是Wordpress下个版本就能够有这些功能的控制面板</span>。</p>
<p>上面的方法搜集自网络，大家都雷同，不知道应该写哪里是出处，就不追究了。如何还有什么更好的方法或者问题，欢迎留言交流！</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/wordpress/836.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WP Super Cache插件可能导致Google XML Sitemap生成不能</title>
		<link>http://wgmcn.com/blog/wordpress/828.html</link>
		<comments>http://wgmcn.com/blog/wordpress/828.html#comments</comments>
		<pubDate>Sat, 14 Aug 2010 04:55:24 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=828</guid>
		<description><![CDATA[摸上google网站管理员工具上面看了一下，发现sitemap已经是10号的了，都几天没更新了都。打开sitemap一看，我郁闷了，啥都没，更新个鬼啊。 登录wordpress后台，进到Google XML Sitemap插件管理页，发现提示“最后一次生成sitpmap未能成功”，点击rebuild the sitemap，错误显示“缓存设置不够”（大概意思），错误在include/cache.php。我那个郁闷啊，之前还好好的。 首先把所有的插件都停用了，只留下sitemap插件，不能生成。 把sitemap插件删了，把option里面的配置也删了，重装，还是不行。 最后，被我瞄到一个地方，插件页面Inactive（未激活）旁边有个选项多了出来，点击进去一看，发现重点了，原来有个插件在激活使用之后，在wp-content文件夹里面生成了一个advanced-cache.php文件，我想，缓存啊缓存，看来是你的错了。 删除之，重新生成，成功。 后经查证，advanced-cache.php文件是WP Super Cache插件卸载后残留的物件。]]></description>
			<content:encoded><![CDATA[<div id='lw_context_ads'><p>摸上google网站管理员工具上面看了一下，发现sitemap已经是10号的了，都几天没更新了都。打开sitemap一看，我郁闷了，啥都没，更新个鬼啊。</p>
<p>登录<strong>wordpress</strong>后台，进到<strong>Google XML Sitemap</strong>插件管理页，发现提示“最后一次生成sitpmap未能成功”，点击rebuild the sitemap，错误显示“缓存设置不够”（大概意思），错误在include/cache.php。我那个郁闷啊，之前还好好的。</p>
<p>首先把所有的<strong>插件</strong>都停用了，只留下sitemap插件，不能生成。</p>
<p>把sitemap插件删了，把option里面的配置也删了，重装，还是不行。</p>
<p>最后，被我瞄到一个地方，插件页面Inactive（未激活）旁边有个选项多了出来，点击进去一看，发现重点了，原来有个插件在激活使用之后，在wp-content文件夹里面生成了一个advanced-cache.php文件，我想，缓存啊缓存，看来是你的错了。</p>
<p>删除之，重新生成，成功。</p>
<p>后经查证，advanced-cache.php文件是WP Super Cache插件卸载后残留的物件。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/wordpress/828.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress to Blogger</title>
		<link>http://wgmcn.com/blog/wordpress/693.html</link>
		<comments>http://wgmcn.com/blog/wordpress/693.html#comments</comments>
		<pubDate>Wed, 04 Mar 2009 13:54:24 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Blogger]]></category>
		<category><![CDATA[wordpress2blogger]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=693</guid>
		<description><![CDATA[由于这个blog的空间快似要到期的了，所以一直在找转移的地方，因为这个空间有时候访问确实是比较慢了。那么好吧，开始找。 本来想找国内的主机，也已经联系好了，但是域名备案风波一出，我就对国内这个不感冒了，遂放弃之。 然后想着用GAE(Google App Engine)，用徐明的这个Micolog，因为其称可以导入Wordpress文件WXR。所以立刻安装Micolog并将备份导入。世事往往是没有那么顺利的，问题来了。现在这个Blog用的是Wordpress2.6.3版本，导出的WXR文件在导入的时候出错，根本就不能导入。我就想，旧版本的Wordpress能不能导入呢？新建了wp2.3，将2.63的文件导入，再导出，竟然可以导入到Micolog了。窃喜，以为可以顺利地在此安家了，但事实并非如此。 导入的时候往往会中断在某一篇文章上，然后需要在WXR手动将这篇文章和之前已经导入的文章删除再操作。这个动作并不是太麻烦，最多重复操作n次就成了。可是令人失望的是，导入的文章没有在对应的分类里（Micolog里面是组），而且前台显示内容的时候基本上没有换行，导致文章没法看。折腾了半天，最后放弃之…… 终于，我还是选择了Blogger，这个Google收购的产物，经常会有被GFW的风险，可是我还是选择了它，为啥？犯贱了可能。既然这样，文章还是得导入的，这个文章转换的利器就来了。 wordpress2blogger,这个Wordpress转换到Blogger的GAE应用，只要把Wordpress导出的WXR文件上传即可转换为Blogger的导入格式，方便。我也不多说，可以看看这里的介绍：转换/进出口博客帖子Blogger或Wordpress或线上。 终于大功告成了，只有少许的评论丢失了，还有友情链接没有导过来。 ps：国内其实有一些支持绑定域名的BSP，例如Yo2.cn和Blogbus，他们的服务都很好。只是为了要绑定域名而去备案，太麻烦了，不想折腾，所以选择了也可以免费绑米的Blogger，可惜最后一个没有被封的BloggerIP都被华丽地GFW掉了。]]></description>
			<content:encoded><![CDATA[<div id='lw_context_ads'><p>由于这个blog的空间快似要到期的了，所以一直在找转移的地方，因为这个空间有时候访问确实是比较慢了。那么好吧，开始找。</p>
<p>本来想找国内的主机，也已经联系好了，但是域名备案风波一出，我就对国内这个不感冒了，遂放弃之。</p>
<p>然后想着用GAE(Google App Engine)，用<a title="徐明" href="http://xuming.net/">徐明</a>的这个Micolog，因为其称可以导入Wordpress文件WXR。所以立刻安装Micolog并将备份导入。世事往往是没有那么顺利的，问题来了。现在这个Blog用的是Wordpress2.6.3版本，导出的WXR文件在导入的时候出错，根本就不能导入。我就想，旧版本的Wordpress能不能导入呢？新建了wp2.3，将2.63的文件导入，再导出，竟然可以导入到Micolog了。窃喜，以为可以顺利地在此安家了，但事实并非如此。</p>
<p>导入的时候往往会中断在某一篇文章上，然后需要在WXR手动将这篇文章和之前已经导入的文章删除再操作。这个动作并不是太麻烦，最多重复操作n次就成了。可是令人失望的是，导入的文章没有在对应的分类里（Micolog里面是组），而且前台显示内容的时候基本上没有换行，导致文章没法看。折腾了半天，最后放弃之……</p>
<p>终于，我还是选择了Blogger，这个Google收购的产物，经常会有被GFW的风险，可是我还是选择了它，为啥？犯贱了可能。既然这样，文章还是得导入的，这个文章转换的利器就来了。</p>
<p><a title="wordpress2blogger" href="http://wordpress2blogger.appspot.com/">wordpress2blogger</a>,这个Wordpress转换到Blogger的GAE应用，只要把Wordpress导出的WXR文件上传即可转换为Blogger的导入格式，方便。我也不多说，可以看看这里的介绍：<a href="http://www.blogsdna.com/zh-CN/1992/covertimport-export-your-blog-posts-to-blogger-or-wordpress-or-livejournal.htm">转换/进出口博客帖子Blogger或Wordpress或线上</a>。</p>
<p>终于大功告成了，只有少许的评论丢失了，还有友情链接没有导过来。</p>
<p>ps：国内其实有一些支持绑定域名的BSP，例如Yo2.cn和Blogbus，他们的服务都很好。只是为了要绑定域名而去备案，太麻烦了，不想折腾，所以选择了也可以免费绑米的Blogger，可惜最后一个没有被封的BloggerIP都被华丽地GFW掉了。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/wordpress/693.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>wordpress 2.7正式版</title>
		<link>http://wgmcn.com/blog/wordpress/660.html</link>
		<comments>http://wgmcn.com/blog/wordpress/660.html#comments</comments>
		<pubDate>Sat, 13 Dec 2008 02:26:02 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Wordpress 2.7]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=660</guid>
		<description><![CDATA[WordPress 2.7正式版终于面世了，立刻去体验吧。 在上次介绍RC1的时候，我说据闻是在12月4日推出2.7的正式版，看来这个消息真是不准确呢，最后发布日期是12月10。不知道是不是因为什么原因，我对这次的更新却没有以往的兴奋。 此外，似乎官方推出了正式的中文站点，和官方中文版下载。 下载地址： 官方： 原版 &#124; 中文 中文团队： 你可以登录 WordPress 非官方中文站进行下载，或者直接点击下面的下载链接： WordPress 2.7 中文版下载：zip 格式 &#124; gz 格式 WordPress 2.7 中文语言包下载：zip 格式 &#124; gz 格式]]></description>
			<content:encoded><![CDATA[<div id='lw_context_ads'><p style="text-align: center; "><img class="aligncenter" title="wordpress" src="http://photo5.yupoo.com/20071030/201602_335919476_mwxnkboq.jpg" alt="" width="150" height="31" /></p>
<p>WordPress 2.7正式版终于面世了，立刻去<a title="wordpress 2.7" href="http://wordpress.org/wordpress-2.7.zip">体验</a>吧。</p>
<p>在上次介绍RC1的时候，我说据闻是在12月4日推出2.7的正式版，看来这个消息真是不准确呢，最后发布日期是12月10。不知道是不是因为什么原因，我对这次的更新却没有以往的兴奋。</p>
<p>此外，似乎官方推出了<a title="wordpress中文站" href="http://cn.wordpress.org/">正式的中文站点</a>，和官方中文版下载。</p>
<p>下载地址：</p>
<p><strong>官方：</strong></p>
<p><a title="wordpress 2.7" href="http://wordpress.org/wordpress-2.7.zip">原版</a> | <a title="wordpress 2.7 cn" href="http://cn.wordpress.org/wordpress-2.7-zh_CN.zip">中文</a></p>
<p><strong>中文团队：</strong></p>
<p>你可以<a href="http://wpchina.org/downloads/" target="_blank">登录 WordPress 非官方中文站进行下载</a>，或者直接点击下面的下载链接：<br />
WordPress 2.7 中文版下载：<a href="http://wordpresschina.googlecode.com/files/wordpress.27.chs.zip" target="_blank">zip 格式</a> | <a href="http://wordpresschina.googlecode.com/files/wordpress.27.chs.tar.gz" target="_blank">gz 格式</a><br />
WordPress 2.7 中文语言包下载：<a href="http://wordpresschina.googlecode.com/files/wordpress.27.chs.languages.only.zip" target="_blank">zip 格式</a> | <a href="http://wordpresschina.googlecode.com/files/wordpress.27.chs.languages.only.tar.gz" target="_blank">gz 格式</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/wordpress/660.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>WordPress 2.7 RC1 Releaes</title>
		<link>http://wgmcn.com/blog/wordpress/653.html</link>
		<comments>http://wgmcn.com/blog/wordpress/653.html#comments</comments>
		<pubDate>Thu, 04 Dec 2008 17:15:26 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=653</guid>
		<description><![CDATA[经过上次的Beta 3版之后,WordPress 2.7终于推出了RC 1版本,据闻正式版将会在12月4日推出. 下载地址:http://wordpress.org/development/2008/12/wordpress-27-release-candidate-1/ 这个版本集合了更多新众粉期望的新特性,后台登陆界面也更漂亮了,嘿嘿.同学们喜欢就更新吧,记得先备份哦. ps:现在在去广州的车上,有一位呼噜大将坐阵,我硬是不敢睡着,提醒我,更新呀更新.天啊&#8230;&#8230;]]></description>
			<content:encoded><![CDATA[<div id='lw_context_ads'><p style="text-align:center"><img src="http://photo5.yupoo.com/20071030/201602_335919476_mwxnkboq.jpg" alt="Wordpress" /></p>
<p>经过上次的<a href="http://wgmcn.com/blog/wordpress-27-beta-3.html">Beta 3</a>版之后,<a href="http://wordpress.org/development/2008/12/wordpress-27-release-candidate-1/">WordPress 2.7终于推出了RC 1版本</a>,据闻正式版将会在12月4日推出.</p>
<p>下载地址:http://wordpress.org/development/2008/12/wordpress-27-release-candidate-1/</p>
<p>这个版本集合了更多新众粉期望的新特性,后台登陆界面也更漂亮了,嘿嘿.同学们喜欢就更新吧,记得先备份哦.</p>
<p>ps:现在在去广州的车上,有一位呼噜大将坐阵,我硬是不敢睡着,提醒我,更新呀更新.天啊&#8230;&#8230;</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/wordpress/653.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>WordPress update to 2.6.5</title>
		<link>http://wgmcn.com/blog/wordpress/642.html</link>
		<comments>http://wgmcn.com/blog/wordpress/642.html#comments</comments>
		<pubDate>Wed, 26 Nov 2008 04:46:53 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[升级]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=642</guid>
		<description><![CDATA[在不久之前刚刚更新到2.6.3的WordPress现在又发布了新版本，跳过2.6.4直接升级到2.6.5了。 此次更新跳过2.6.4的原因是由于之前有曾经有一版伪造的含有木马的WordPress 2.6.4流传出来，所以才直接跳过此版本直接到2.6.5。 更新改进(via)： 修正一个基于虚拟主机的可能会引发跨站攻击的Bug 防止日志元信息意外地写入到修订版本之中 防止 XML-RPC 获取错误的日志类型 在批量删除前对用户 ID 进行检查过滤 更新了/wp-includes/下的post.php、version.php、feed.php以及/xmlrpc.php和/wp-admin/users.php 下载： WordPress 2.6.5 完整压缩包 WordPress 2.6.3 到 2.6.5 的升级补丁 WordPress 2.6.5 语言包( via WordPress 中文团队 ) 已在使用 WordPress 2.6.3 的用户只须下载升级补丁，并上传覆盖已有文件即可。]]></description>
			<content:encoded><![CDATA[<div id='lw_context_ads'><p align="center"><img src="http://photo5.yupoo.com/20071030/201602_335919476_mwxnkboq.jpg" alt="" /></p>
<p>在不久之前刚刚<a href="http://wgmcn.com/blog/wordpress-updated-to-263.html" target="_blank">更新到2.6.3</a>的<strong>WordPress</strong>现在又发布了新版本，跳过2.6.4直接升级到2.6.5了。</p>
<p>此次更新跳过2.6.4的原因是由于之前有曾经有一版<a href="http://www.craigmurphy.com/blog/?p=874" target="_blank">伪造的含有木马的WordPress 2.6.4</a>流传出来，所以才直接跳过此版本直接到2.6.5。</p>
<p>更新改进(<a href="http://fairyfish.net/2008/11/26/wordpress-265/" target="_blank">via</a>)：</p>
<ol>
<li>修正一个基于虚拟主机的可能会引发跨站攻击的Bug</li>
<li>防止日志元信息意外地写入到修订版本之中</li>
<li>防止 XML-RPC 获取错误的日志类型</li>
<li>在批量删除前对用户 ID 进行检查过滤</li>
</ol>
<p>更新了/wp-includes/下的post.php、version.php、feed.php以及/xmlrpc.php和/wp-admin/users.php</p>
<p>下载：</p>
<ul>
<li><a href="http://wordpress.org/wordpress-2.6.5.zip">WordPress 2.6.5 完整压缩包 </a></li>
<li><a href="http://wpcn.googlecode.com/files/diff-from-tags_2.6.3-r9870-to-tags_2.6.5-r9870.zip">WordPress 2.6.3 到 2.6.5 的升级补丁</a></li>
<li><a href="http://wpcn.googlecode.com/files/WordPress.MU.v2.6.2.Simp.Chinese.pack.only.v1-wpcng.zip">WordPress 2.6.5 语言包</a>( via <a href="http://www.wpcng.com/">WordPress 中文团队</a> )</li>
</ul>
<p>已在使用 WordPress 2.6.3 的用户只须下载升级补丁，并上传覆盖已有文件即可。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/wordpress/642.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress theme hack &#8211; 回复评论倒序显示</title>
		<link>http://wgmcn.com/blog/wordpress/640.html</link>
		<comments>http://wgmcn.com/blog/wordpress/640.html#comments</comments>
		<pubDate>Tue, 25 Nov 2008 10:01:21 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[Commnet]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[倒序]]></category>
		<category><![CDATA[评论]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=640</guid>
		<description><![CDATA[修改Wordpress主题支持最新评论显示在前。]]></description>
			<content:encoded><![CDATA[<div id='lw_context_ads'><p style="text-align: center;"><img class="aligncenter" src="http://photo5.yupoo.com/20071030/201602_335919476_mwxnkboq.jpg" alt="" /></p>
<p>一般来说，<strong>WordPress</strong>主题的评论显示顺序都是按照发表时间先后显示的，即是先发表的（旧的）显示在前面，后发表的（新的）显示在后面。这样的显示效果，有好处也有坏处。好处就是可以让读者按照时间顺序来阅读别人对你文章发表的评论，了解大家一起讨论的问题；而坏处就是当读者需要看到最新评论的时候，往往需要花时间把页面拉到最后才能找到（评论很多的情况）。虽然，可以用分页插件来解决一下这个拉动的问题，但有时候还是会挺不方便。那么，有什么解决的办法呢？</p>
<p>其实，很简单，只需要在模板里面改一个小小的地方，就可以让你的评论按照<strong>倒序</strong>（最新在前）显示了。</p>
<p>在模板编辑页，找到<strong>Comment</strong>.php这个模板页面，再找到</p>
<pre name="code" class="brush:php">&lt; ? php foreach ($comments as $comment) : ?&gt;</pre>
<p>然后改成</p>
<pre name="code" class="brush:php">&lt; ? php foreach (array_reverse($comments) as $comment) : ?&gt;</pre>
<p>然后再看看显示，是不是最新的评论显示在前面了？</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/wordpress/640.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

