<?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; Blog</title>
	<atom:link href="http://wgmcn.com/blog/tag/%e6%b5%8f%e8%a7%88%e5%99%a8/feed" rel="self" type="application/rss+xml" />
	<link>http://wgmcn.com</link>
	<description>像癫像傻又像疯</description>
	<lastBuildDate>Tue, 07 Sep 2010 14:32:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.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>腾讯微博邀请码50枚</title>
		<link>http://wgmcn.com/blog/907.html</link>
		<comments>http://wgmcn.com/blog/907.html#comments</comments>
		<pubDate>Mon, 23 Aug 2010 16:32:05 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[QQ]]></category>
		<category><![CDATA[微博]]></category>
		<category><![CDATA[腾讯]]></category>
		<category><![CDATA[邀请码]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=907</guid>
		<description><![CDATA[前车之鉴，所有用了的童鞋都不留言，所以，我也就打算不更新了，自己复制到地址栏去测试吧，50个。 http://t.qq.com/invite/46cefcf276ca3cb73f7f http://t.qq.com/invite/86ed09205bc820a6ecbb http://t.qq.com/invite/efce7023f14e916e995f http://t.qq.com/invite/a591033aebcfbd1d764b http://t.qq.com/invite/f50c1f37299786dbb6df http://t.qq.com/invite/4870d1c22d4f80326cc5 http://t.qq.com/invite/36b89a51901cf53917ad http://t.qq.com/invite/9c3f649792caf4cfc7f7 http://t.qq.com/invite/f3e0d66d7c27fb3136c7 http://t.qq.com/invite/3584ec049544ea16a8cb http://t.qq.com/invite/4a008918914190130729 http://t.qq.com/invite/87932c7fbae1f2a7ed19 http://t.qq.com/invite/34a1c85b9477bbb9ad91 http://t.qq.com/invite/6bc2d59187078853ec87 http://t.qq.com/invite/bdb628d57f04459681c1 http://t.qq.com/invite/2c4ad4669105c4f5e95f http://t.qq.com/invite/6e577479ead78ba83681 http://t.qq.com/invite/b10628d58792ffdaa76b http://t.qq.com/invite/d50557381346c0c36f93 http://t.qq.com/invite/94e1d72052dc22e4ae3b http://t.qq.com/invite/a51017fea17ad36208e5 http://t.qq.com/invite/4653e2c2242834e581ab http://t.qq.com/invite/c391ab27f815f95a366d http://t.qq.com/invite/899bc8ee7fee87a7671d http://t.qq.com/invite/d8faa37209607784a617 http://t.qq.com/invite/0b41a1b70215ede723d7 http://t.qq.com/invite/3b304a8d659b0c94a86f http://t.qq.com/invite/e8dbfed07883346f66cf http://t.qq.com/invite/642bbf5fecc88860b023 http://t.qq.com/invite/b233b75cff839a441331 http://t.qq.com/invite/5e29f6cd211da7b6ec23 http://t.qq.com/invite/19cdebd695e702d4b01f http://t.qq.com/invite/8e967fcd9fa0d331285b http://t.qq.com/invite/a6e1080e34d5ee3541f5 http://t.qq.com/invite/bb7cd1932a7944badd45 http://t.qq.com/invite/cbbe4f7ec1950458d133 http://t.qq.com/invite/e602f6d75a3d4bba13ef http://t.qq.com/invite/6b8acf7e88544466c28d http://t.qq.com/invite/d094350e3d5a3972802d http://t.qq.com/invite/d1a4e0375ed5757dc57b http://t.qq.com/invite/929004bbac64949789e5 http://t.qq.com/invite/20105fa2d355899bdffb http://t.qq.com/invite/c5c0b5f1946563816015 http://t.qq.com/invite/188c767ab0d461df1e2b http://t.qq.com/invite/78781efd09130bae8dbd http://t.qq.com/invite/9065676e685702297775 http://t.qq.com/invite/348eec089151f269aa81 http://t.qq.com/invite/9087c3bf8c871d253307 http://t.qq.com/invite/33cb46ebc596d7bd2ac5 http://t.qq.com/invite/7e629b81f6bd6c4d0acd]]></description>
			<content:encoded><![CDATA[<div id="lw_context_ads"><p>前车之鉴，所有用了的童鞋都不留言，所以，我也就打算不更新了，自己复制到地址栏去测试吧，50个。</p>
<p>http://t.qq.com/invite/46cefcf276ca3cb73f7f</p>
<p>http://t.qq.com/invite/86ed09205bc820a6ecbb</p>
<p>http://t.qq.com/invite/efce7023f14e916e995f</p>
<p>http://t.qq.com/invite/a591033aebcfbd1d764b</p>
<p>http://t.qq.com/invite/f50c1f37299786dbb6df</p>
<p>http://t.qq.com/invite/4870d1c22d4f80326cc5</p>
<p>http://t.qq.com/invite/36b89a51901cf53917ad</p>
<p>http://t.qq.com/invite/9c3f649792caf4cfc7f7</p>
<p>http://t.qq.com/invite/f3e0d66d7c27fb3136c7</p>
<p>http://t.qq.com/invite/3584ec049544ea16a8cb</p>
<p>http://t.qq.com/invite/4a008918914190130729</p>
<p>http://t.qq.com/invite/87932c7fbae1f2a7ed19</p>
<p>http://t.qq.com/invite/34a1c85b9477bbb9ad91</p>
<p>http://t.qq.com/invite/6bc2d59187078853ec87</p>
<p>http://t.qq.com/invite/bdb628d57f04459681c1</p>
<p>http://t.qq.com/invite/2c4ad4669105c4f5e95f</p>
<p>http://t.qq.com/invite/6e577479ead78ba83681</p>
<p>http://t.qq.com/invite/b10628d58792ffdaa76b</p>
<p>http://t.qq.com/invite/d50557381346c0c36f93</p>
<p>http://t.qq.com/invite/94e1d72052dc22e4ae3b</p>
<p>http://t.qq.com/invite/a51017fea17ad36208e5</p>
<p>http://t.qq.com/invite/4653e2c2242834e581ab</p>
<p>http://t.qq.com/invite/c391ab27f815f95a366d</p>
<p>http://t.qq.com/invite/899bc8ee7fee87a7671d</p>
<p>http://t.qq.com/invite/d8faa37209607784a617</p>
<p>http://t.qq.com/invite/0b41a1b70215ede723d7</p>
<p>http://t.qq.com/invite/3b304a8d659b0c94a86f</p>
<p>http://t.qq.com/invite/e8dbfed07883346f66cf</p>
<p>http://t.qq.com/invite/642bbf5fecc88860b023</p>
<p>http://t.qq.com/invite/b233b75cff839a441331</p>
<p>http://t.qq.com/invite/5e29f6cd211da7b6ec23</p>
<p>http://t.qq.com/invite/19cdebd695e702d4b01f</p>
<p>http://t.qq.com/invite/8e967fcd9fa0d331285b</p>
<p>http://t.qq.com/invite/a6e1080e34d5ee3541f5</p>
<p>http://t.qq.com/invite/bb7cd1932a7944badd45</p>
<p>http://t.qq.com/invite/cbbe4f7ec1950458d133</p>
<p>http://t.qq.com/invite/e602f6d75a3d4bba13ef</p>
<p>http://t.qq.com/invite/6b8acf7e88544466c28d</p>
<p>http://t.qq.com/invite/d094350e3d5a3972802d</p>
<p>http://t.qq.com/invite/d1a4e0375ed5757dc57b</p>
<p>http://t.qq.com/invite/929004bbac64949789e5</p>
<p>http://t.qq.com/invite/20105fa2d355899bdffb</p>
<p>http://t.qq.com/invite/c5c0b5f1946563816015</p>
<p>http://t.qq.com/invite/188c767ab0d461df1e2b</p>
<p>http://t.qq.com/invite/78781efd09130bae8dbd</p>
<p>http://t.qq.com/invite/9065676e685702297775</p>
<p>http://t.qq.com/invite/348eec089151f269aa81</p>
<p>http://t.qq.com/invite/9087c3bf8c871d253307</p>
<p>http://t.qq.com/invite/33cb46ebc596d7bd2ac5</p>
<p>http://t.qq.com/invite/7e629b81f6bd6c4d0acd</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/907.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>具有兼容性的半透明背景CSS</title>
		<link>http://wgmcn.com/blog/skills/905.html</link>
		<comments>http://wgmcn.com/blog/skills/905.html#comments</comments>
		<pubDate>Mon, 23 Aug 2010 12:54:29 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Skills]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[半透明]]></category>
		<category><![CDATA[背景]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=905</guid>
		<description><![CDATA[不想折腾，又忍不住，放上了博客的背景，还想做个半透明，so，找到了下面的这段兼容性颇强的CSS代码。 background:rgba(0,0,0,0.5); filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7F000000,endcolorstr=#7F000000);/* for IE */ /* background:rgba(0,0,0,0.5);前面3个0为r,g,b三种颜色，0为黑，255为白（0,0,0的16进制为 000000，255,255,255的16进制为 FFFFFF，其他颜色请自己改写），后面的0.5的透明度，上面效果为黑色半透明。 下面的filter作为IE的hack，startcolortr后面的数值7F为16进制的透明值，即为255的一半172，后面的就是平时用的16进制颜色。 */ 这段代码来自于这里：RGBA颜色与兼容性的半透明背景色。文章里为rgba（css3属性）做了详细介绍，并提供了背景色半透明和边框半透明的解决方案，欢迎围观。]]></description>
			<content:encoded><![CDATA[<div id="lw_context_ads"><p>不想折腾，又忍不住，放上了博客的<strong>背景</strong>，还想做个半透明，so，找到了下面的这段兼容性颇强的<strong>CSS</strong>代码。</p>
<pre class="brush:css">background:rgba(0,0,0,0.5);

filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7F000000,endcolorstr=#7F000000);/* for IE */

/*

background:rgba(0,0,0,0.5);前面3个0为r,g,b三种颜色，0为黑，255为白（0,0,0的16进制为 000000，255,255,255的16进制为 FFFFFF，其他颜色请自己改写），后面的0.5的透明度，上面效果为<strong>黑色半透明。</strong> 

下面的filter作为IE的<strong>hack</strong>，startcolortr后面的数值7F为16进制的透明值，即为255的一半172，后面的就是平时用的16进制颜色。

*/</pre>
<p>这段代码来自于这里：<a title="RGBA颜色与兼容性的半透明背景色" href="http://www.zhangxinxu.com/wordpress/?p=839" target="_blank">RGBA颜色与兼容性的半透明背景色</a>。文章里为rgba（css3属性）做了详细介绍，并提供了背景色半透明和边框半透明的解决方案，欢迎围观。</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/skills/905.html/feed</wfw:commentRss>
		<slash:comments>0</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>Earn $75 from Authority Backlinks</title>
		<link>http://wgmcn.com/blog/topic/862.html</link>
		<comments>http://wgmcn.com/blog/topic/862.html#comments</comments>
		<pubDate>Fri, 20 Aug 2010 17:51:13 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Topic]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=862</guid>
		<description><![CDATA[相信大部分博客作者都听说过一种“出售链接”的赚钱方式。如果你不了解，不要紧，一切从现在开始。 Authority Backlinks是相对来说比较新的一家链接服务平台。主要专注于文本链接， 向博客主或网站站长提供交换链接平台，出售链接平台，为广告主提供购买链接平台。Authority Backlinks的操作方式和另外一个链接服务平台BackLinks十分相似，定价策略主要是基于博客和网站的PR指数，且是固定的，只要你的博客有一定的PR值，完全可以注册一个“网站主账户（Sell Text Link）”来出售你的链接，为你的博客赚点外快。 现时Authority Backlinks举行一个巨大的邀请优惠活动，只要你邀请网站主或者广告主注册并成为活跃用户，那么每个名额Authority Backlinks将会回馈你75美元（网站主）或者300美元（广告主），这个活动将会在2010年11月1日截止，然后恢复到原来的25美元（网站主）或者100美元（广告主）。通告如下： Special Payout Rates until November 1st 2010: Referred Publishers $75 Referred Advertisers $300 要得到邀请的链接，首先需要注册一个账户。Authority Backlinks的注册十分简单，选择Publishers下面的“Sign Up Now！”，只需要填写一般的用户名、密码、邮箱和你的paypal账户。（没有paypal账户？点这里注册） 然后在左边菜单栏上选择点击“Affiliate account”，然后要求再次填入你的paypal账户，点击确定。至此，你的邀请帐号已经产生，选择“Affiliate account”下面的“Affiliate links”，在里面选取你喜欢的样式，将代码复制粘帖到你的博客中，或者直接将链接发送到你想要邀请人的通讯IM里，静候结果，你将会获得至少75美元的奖励哦~]]></description>
			<content:encoded><![CDATA[<div id="lw_context_ads"><p style="text-align: center;"><img class="aligncenter" src="http://pic.yupoo.com/i-kevin_v/ApBG77ce/VzhG4.gif" alt="authoritybacklinks" /></p>
<p>相信大部分博客作者都听说过一种“<strong>出售链接</strong>”的赚钱方式。如果你不了解，不要紧，一切从现在开始。</p>
<p><a title="authoritybacklinks" href="http://www.authoritybacklinks.com?aff=1336" target="_blank">Authority Backlinks</a>是相对来说比较新的一家链接服务平台。主要专注于文本链接， 向博客主或网站站长提供交换链接平台，出售链接平台，为广告主提供购买链接平台。Authority Backlinks的操作方式和另外一个链接服务平台<a title="Backlinks" href="http://www.whylink.com/?aff=31881" target="_blank">BackLinks</a>十分相似，定价策略主要是基于博客和网站的PR指数，且是固定的，只要你的博客有一定的PR值，完全可以注册一个“<a title="Sell Text Link" href="http://www.authoritybacklinks.com/?aff=1336" target="_blank">网站主账户（Sell Text Link）</a>”来出售你的链接，为你的博客赚点外快。</p>
<p>现时Authority Backlinks举行一个巨大的邀请优惠活动，只要你邀请网站主或者广告主注册并成为活跃用户，那么每个名额Authority Backlinks将会回馈你<strong>75美元（网站主）</strong>或者<strong>300美元（广告主）</strong>，这个活动将会在2010年11月1日截止，然后恢复到原来的<strong>25美元（网站主）</strong>或者<strong>100美元（广告主）</strong>。通告如下：</p>
<blockquote>
<h3>Special Payout Rates until November 1st 2010:</h3>
<ul>
<li><strong>Referred Publishers $75</strong></li>
<li><strong>Referred Advertisers $300</strong></li>
</ul>
</blockquote>
<p>要得到邀请的链接，首先需要<a title="Authority Backlinks" href="http://www.authoritybacklinks.com/?aff=1336" target="_blank">注册</a>一个账户。Authority Backlinks的注册十分简单，选择Publishers下面的“Sign Up Now！”，只需要填写一般的用户名、密码、邮箱和你的paypal账户。（没有paypal账户？点<a title="Paypal" href="https://www.paypal.com/c2/mrb/pal=DHXYAZVRJCL8A" target="_blank"><span style="color: #0000ff;">这里</span></a>注册）</p>
<p>然后在左边菜单栏上选择点击“Affiliate account”，然后要求再次填入你的paypal账户，点击确定。至此，你的邀请帐号已经产生，选择“Affiliate account”下面的“Affiliate links”，在里面选取你喜欢的样式，将代码复制粘帖到你的博客中，或者直接将链接发送到你想要邀请人的通讯IM里，静候结果，你将会获得至少75美元的奖励哦~</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/topic/862.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>腾讯微博邀请码20枚</title>
		<link>http://wgmcn.com/blog/856.html</link>
		<comments>http://wgmcn.com/blog/856.html#comments</comments>
		<pubDate>Thu, 19 Aug 2010 03:23:09 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=856</guid>
		<description><![CDATA[介于上次《腾讯QQ微博邀请码14枚》放出的全部被人使用了却完全没有人留言，感到有点失望了，复制黏贴然后点一下鼠标，有那么难么。 现在邀请码竟然有70枚之多，先放20枚吧，上菜。 http://t.qq.com/invite/3b6770976b2f23f46af1 http://t.qq.com/invite/8cdefe6706b141cc2427 http://t.qq.com/invite/0c8bf23968f70bcaa407 http://t.qq.com/invite/2de691f194d1704430a1 http://t.qq.com/invite/e835dfe7c294146d4791 http://t.qq.com/invite/8fb1fd9bbd95d54c880b http://t.qq.com/invite/147b9fd84277530ad11f http://t.qq.com/invite/f11dbaf636656e7f73bd http://t.qq.com/invite/d50dcd486d13b98376c7 http://t.qq.com/invite/3c350b403772c33a055b http://t.qq.com/invite/306cb866eabf90bcd81d http://t.qq.com/invite/14b0f4cfc17f7e6cea6d http://t.qq.com/invite/f830717c98bf5e232fff http://t.qq.com/invite/d573840859576291e0a9 http://t.qq.com/invite/4995584fd2b896980265 http://t.qq.com/invite/8663fc76646e99a64dd9 http://t.qq.com/invite/bb8afbf2829a007e3ea1 http://t.qq.com/invite/8ebf2639597b6ac38df1 http://t.qq.com/invite/b010be439821bbb8c24b http://t.qq.com/invite/2d7fbddf02a7171216e9]]></description>
			<content:encoded><![CDATA[<div id="lw_context_ads"><p>介于上次《<a title="腾讯QQ微博邀请码14枚" href="http://wgmcn.com/blog/230.html">腾讯QQ微博邀请码14枚</a>》放出的全部被人使用了却完全没有人留言，感到有点失望了，复制黏贴然后点一下鼠标，有那么难么。</p>
<p>现在邀请码竟然有70枚之多，先放20枚吧，上菜。</p>
<p><del datetime="2010-08-21T16:47:07+00:00">http://t.qq.com/invite/3b6770976b2f23f46af1</del></p>
<p><del datetime="2010-08-21T16:47:07+00:00">http://t.qq.com/invite/8cdefe6706b141cc2427</del></p>
<p><del datetime="2010-08-23T16:20:36+00:00">http://t.qq.com/invite/0c8bf23968f70bcaa407</del></p>
<p><del datetime="2010-08-21T16:47:07+00:00">http://t.qq.com/invite/2de691f194d1704430a1</del></p>
<p><del datetime="2010-08-19T09:16:41+00:00">http://t.qq.com/invite/e835dfe7c294146d4791</del></p>
<p><del datetime="2010-08-21T16:47:07+00:00">http://t.qq.com/invite/8fb1fd9bbd95d54c880b</del></p>
<p><del datetime="2010-08-23T16:20:36+00:00">http://t.qq.com/invite/147b9fd84277530ad11f</del></p>
<p><del datetime="2010-08-21T16:47:07+00:00">http://t.qq.com/invite/f11dbaf636656e7f73bd</del></p>
<p><del datetime="2010-08-21T16:47:07+00:00">http://t.qq.com/invite/d50dcd486d13b98376c7</del></p>
<p>http://t.qq.com/invite/3c350b403772c33a055b</p>
<p><del datetime="2010-08-21T16:47:07+00:00">http://t.qq.com/invite/306cb866eabf90bcd81d</del></p>
<p>http://t.qq.com/invite/14b0f4cfc17f7e6cea6d</p>
<p>http://t.qq.com/invite/f830717c98bf5e232fff</p>
<p><del datetime="2010-08-23T16:20:36+00:00">http://t.qq.com/invite/d573840859576291e0a9</del></p>
<p>http://t.qq.com/invite/4995584fd2b896980265</p>
<p>http://t.qq.com/invite/8663fc76646e99a64dd9</p>
<p><del datetime="2010-08-23T16:20:36+00:00">http://t.qq.com/invite/bb8afbf2829a007e3ea1</del></p>
<p><del datetime="2010-08-23T16:20:36+00:00">http://t.qq.com/invite/8ebf2639597b6ac38df1</del></p>
<p><del datetime="2010-08-21T16:47:07+00:00">http://t.qq.com/invite/b010be439821bbb8c24b</del></p>
<p><del datetime="2010-08-19T09:16:41+00:00">http://t.qq.com/invite/2d7fbddf02a7171216e9</del></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/856.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>3</slash:comments>
		</item>
		<item>
		<title>pre标签换行CSS样式</title>
		<link>http://wgmcn.com/blog/skills/840.html</link>
		<comments>http://wgmcn.com/blog/skills/840.html#comments</comments>
		<pubDate>Sat, 14 Aug 2010 16:43:42 +0000</pubDate>
		<dc:creator>K</dc:creator>
				<category><![CDATA[Skills]]></category>
		<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://wgmcn.com/?p=840</guid>
		<description><![CDATA[因为某些原因，需要用到代码插件，但是pre标签在一行代码很长的情况下不换行令其出现横向的滚动条，看着很不舒服，所以找到了以下的CSS样式，成功换行，理论支持各大浏览器 pre { white-space: pre-wrap; /* CSS-3 */ white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ white-space: -pre-wrap; /* Opera 4-6 */ white-space: -o-pre-wrap; /* Opera 7 */ word-wrap: break-word; /* Internet Explorer 5.5+ */ -moz-binding: url('./wordwrap.xml#wordwrap'); /* Firefox */ } 发现在Firefox下的显示问题后，修改了上述部分最后的一行，并需要新建一份xml文档，存放在style的相同目录下或者网站的根目录下，只要CSS文件能够正确地访问到就ok拉，其内容为 &#60;?xml version="1.0" encoding="UTF-8"?&#62;   &#60;bindings xmlns="http://www.mozilla.org/xbl"      xmlns:html="http://www.w3.org/1999/xhtml"&#62;       &#60;binding id="wordwrap" applyauthorstyles="false"&#62;           &#60;implementation&#62;               [...]]]></description>
			<content:encoded><![CDATA[<div id="lw_context_ads"><p>因为某些原因，需要用到代码插件，但是<strong>pre</strong>标签在一行代码很长的情况下不换行令其出现横向的滚动条，看着很不舒服，所以找到了以下的<strong>CSS</strong>样式，成功换行，理论支持各大浏览器</p>
<pre class="brush:css">
pre {
	white-space: pre-wrap;       /* CSS-3 */
	white-space: -moz-pre-wrap;  /* Mozilla, since 1999 */
	white-space: -pre-wrap;      /* Opera 4-6 */
	white-space: -o-pre-wrap;    /* Opera 7 */
	word-wrap: break-word;       /* Internet Explorer 5.5+ */
	-moz-binding: url('./wordwrap.xml#wordwrap'); /* Firefox */
}
</pre>
<p>发现在Firefox下的显示问题后，修改了上述部分最后的一行，并需要新建一份xml文档，存放在style的相同目录下或者网站的根目录下，只要CSS文件能够正确地访问到就ok拉，其内容为</p>
<pre class="brush:xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;  
&lt;bindings xmlns="<a href="http://www.mozilla.org/xbl">http://www.mozilla.org/xbl</a>" 
    xmlns:html="<a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a>"&gt;  
    &lt;binding id="wordwrap" applyauthorstyles="false"&gt;  
        &lt;implementation&gt;  
            &lt;constructor&gt;  
                //&lt;![CDATA[  
            var elem = this;  
            doWrap();  
            elem.addEventListener('overflow', doWrap, false);  

            function doWrap()  
            {  
                var walker = document.createTreeWalker(elem, NodeFilter.SHOW_TEXT, null, false);  
                while (walker.nextNode())  
                {  
                    var node = walker.currentNode;  
                    node.nodeValue = node.nodeValue.split('').join(String.fromCharCode('8203'));  
                }  
            }  
            //]]&gt;  
            &lt;/constructor&gt;  
        &lt;/implementation&gt;  
    &lt;/binding&gt; 
&lt;/bindings&gt;</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://wgmcn.com/blog/skills/840.html/feed</wfw:commentRss>
		<slash:comments>0</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>
	</channel>
</rss>
