<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>余心烦错 &#187; wordpress</title>
	<atom:link href="http://blog.efrees.com/tag/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.efrees.com</link>
	<description>We shall meet in the place where there is no darkness.</description>
	<lastBuildDate>Thu, 09 Sep 2010 19:07:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>WordPress + Maxcdn + W3 Total Cache笔记</title>
		<link>http://blog.efrees.com/wordpress-maxcdn-w3-total-cache.html</link>
		<comments>http://blog.efrees.com/wordpress-maxcdn-w3-total-cache.html#comments</comments>
		<pubDate>Wed, 24 Mar 2010 04:47:19 +0000</pubDate>
		<dc:creator>muzik</dc:creator>
				<category><![CDATA[域名与主机]]></category>
		<category><![CDATA[cdn]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.efrees.com/?p=162</guid>
		<description><![CDATA[买了一份Maxcdn的CDN服务1000 GB of Pre-Paid Bandwidth Special，目前的价格是10美元，支持Paypal未认证用户余额付款。此项服务按流量付费，10美元1000G，超出部分5000G以内9.9分每G，往后7.5分每G。服务器主要分布在北美，少量在欧洲，并声称正计划在亚洲香港、新加坡、东京等地部署。 使用W3 Total Cache插件可以很便捷的让WordPress搭建的blog用上这一服务。 MaxCDN 注册并激活成功之后，登录进去管理界面，在Manage Zones里点击Create Pull Zone进入表单: Pull zone name和注册时所填写的Company Name都将被用于分配的CDN临时地址中，均需使用字母或数字组合 Origin Server URL填写自己的Blog地址，如http://blog.efrees.com Custom CDN Domain填写一个自己选定的二级域名，如cdn.efrees.com 新建成功之后，查看刚建立的Zone详情，找到分配到的Temporary URL，如efrees.companyname.netdna-cdn.com，去自己的域名管理处新增一条CNAME记录，把自定义的CDN域名指向此处，如：cdn.efrees.com CNAME efrees.companyname.netdna-cdn.com WordPress 在插件安装界面搜索W3 Total Cache并安装激活。 进入W3 Total Cache设置面板，Content Delivery Network处设置CDN Type为Mirror，Save。 进入CDN Settings页面，Replace site&#8217;s hostname with处填入自定的CDN域名，如cdn.efrees.com，Save。 回到General Settings，Content Delivery Network处勾上Enable CDN，Save即可。 第一天的统计信息 Nodes hit： Amsterdam 6,701 New York [...]]]></description>
			<content:encoded><![CDATA[<p></p><p>买了一份<a href="/go/maxcdn">Maxcdn</a>的<a href="http://baike.baidu.com/view/21895.htm">CDN</a>服务1000 GB of Pre-Paid Bandwidth Special，目前的价格是10美元，支持Paypal未认证用户余额付款。此项服务按流量付费，10美元1000G，超出部分5000G以内9.9分每G，往后7.5分每G。服务器主要分布在北美，少量在欧洲，并声称正计划在亚洲香港、新加坡、东京等地部署。</p>
<p>使用W3 Total Cache插件可以很便捷的让WordPress搭建的blog用上这一服务。</p>
<span id="MaxCDN"><h2>MaxCDN</h2></span>
<p>注册并激活成功之后，登录进去管理界面，在Manage Zones里点击Create Pull Zone进入表单:<br />
<a href="http://blog.efrees.com/wp-content/uploads/2010/03/create-pull-zone.png"><img class="alignnone size-medium wp-image-163" title="create-pull-zone" src="http://blog.efrees.com/wp-content/uploads/2010/03/create-pull-zone-450x316.png" alt="" width="450" height="316" /></a></p>
<ul>
<li>Pull zone name和注册时所填写的Company Name都将被用于分配的CDN临时地址中，均需使用字母或数字组合</li>
<li>Origin Server URL填写自己的Blog地址，如http://blog.efrees.com</li>
<li>Custom CDN Domain填写一个自己选定的二级域名，如cdn.efrees.com</li>
</ul>
<p>新建成功之后，查看刚建立的Zone详情，找到分配到的Temporary URL，如efrees.companyname.netdna-cdn.com，去自己的域名管理处新增一条CNAME记录，把自定义的CDN域名指向此处，如：cdn.efrees.com CNAME efrees.companyname.netdna-cdn.com</p>
<span id="WordPress"><h2>WordPress</h2></span>
<ol>
<li>在插件安装界面搜索W3 Total Cache并安装激活。</li>
<li>进入W3 Total Cache设置面板，Content Delivery Network处设置CDN Type为Mirror，Save。</li>
<li>进入CDN Settings页面，Replace site&#8217;s hostname with处填入自定的CDN域名，如cdn.efrees.com，Save。</li>
<li>回到General Settings，Content Delivery Network处勾上Enable CDN，Save即可。</li>
</ol>
<span id=""><h2>第一天的统计信息</h2></span>
<p>Nodes hit：</p>
<ol>
<li> Amsterdam	6,701</li>
<li>New York	976</li>
<li>Los Angeles	72</li>
<li>Virginia	61</li>
<li>Dallas	2</li>
<li>Seattle	1</li>
</ol>
<p>TOTAL	7,813</p>
<p>网站的访问者主要在西班牙，从物理距离看，阿姆斯特丹确实近了许多。</p>
<img src="http://blog.efrees.com/?ak_action=api_record_view&id=162&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.efrees.com/wordpress-maxcdn-w3-total-cache.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress机能备忘</title>
		<link>http://blog.efrees.com/wordpress-plugin-dev-notes.html</link>
		<comments>http://blog.efrees.com/wordpress-plugin-dev-notes.html#comments</comments>
		<pubDate>Sat, 02 Jan 2010 09:22:59 +0000</pubDate>
		<dc:creator>muzik</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.efrees.com/?p=145</guid>
		<description><![CDATA[每次写点小插件都会想不起那些繁杂的filters到底叫些什么，此帖用于不定期记录以备忘。 添加URL重写规则 经常性需求。比如需要添加一个/submit而又不想新建页面，又或想增强文章列表以使得其能按某几种特定规则排序。添加Rewrite规则可以有两种形式： 在后台设置固定链接的过程中添加。此种方式通过一次设置把处理过的新规则写入数据库。 在每个访问请求时添加，好处是写代码时便于测试。 前一种在一些常用插件中会有存在。后一种比较少见，牵涉到的filter是transient_rewrite_rules，变量$rules。相关的文件及函数列表: /wp-includes/rewrite.php,WP_Rewrite::wp_rewrite_rules() /wp-includes/functions.php,get_transient() 以上filter在2.9.2版中已移除。 添加Query Vars 经常性需求，与上一段关系密切。filter是query_vars，变量$vars。 列印所有数据库查询 先作一个常量声明，$wpdb就会把所有的查询记录下来。 define&#40;'SAVEQUERIES',true&#41;; &#160; 在页面底部输出即可 global $wpdb; printf&#40;'&#60;pre&#62;%s&#60;/pre&#62;',print_r&#40;$wpdb-&#62;queries,true&#41;&#41;; &#160; 可以先在页面底部输出查询数，如查询数过高，再来列印详细找出问题所在。 printf&#40;'%d queries. %s seconds.', get_num_queries&#40;&#41;, timer_stop&#40;0, 3&#41;&#41;; &#160; 更换域名或网址 先确认需要替换的行 mysql> select option_value from wp_options where option_value like 'http://%'; mysql> update wp_options set option_value = 'http://newaddress' where option_value like 'http://olddomain%' Related posts:PHP exec导入mysql数据 [...]

<h3>Related posts:</h3><ol><li><a href='http://blog.efrees.com/php-exec-import-mysql-data.html' rel='bookmark' title='Permanent Link: PHP exec导入mysql数据'>PHP exec导入mysql数据</a> <small>如前迁移MYSQL数据所述，往mysql导入数据只需一句mysql -u username -p dbname &lt; backup.sql就可以了。但在服务器不支持ssh的情况下，一般就只能用PHP脚本来导入。除了读入数据一条条去mysql_query之外，用exec来执行上述语句会快许多——如果服务器支持的话。 $cmd=sprintf&#40;'mysql -h %s...</small></li>
<li><a href='http://blog.efrees.com/wordpress-theme-berita-hack.html' rel='bookmark' title='Permanent Link: WordPress主题berita几处修改记录'>WordPress主题berita几处修改记录</a> <small>前阵子看到这篇《使用WordPress定制企业网站》介绍的berita这个主题。界面我很喜欢，以前也确曾帮朋友用wordpress做过企业网站，于是就去下载了官方原版来用。 当然世事无完美，更没有什么主题能够完全适应各种需求。使用中发现了一些小问题，或者仅仅是不符合个人需求之处，做了一些改动，特此记录。 选择空分类作为博客页 设置面板里Blog Section Settings->Pick Category for Your Blog...</small></li>
<li><a href='http://blog.efrees.com/archives/xmlrpc-use-to-publish-articles-wordpress' rel='bookmark' title='Permanent Link: 使用XMLRPC发布文章到wordpress'>使用XMLRPC发布文章到wordpress</a> <small>&nbsp; &nbsp;&nbsp; &nbsp;$xmlrpcurl='http://efrees.com/blog/xmlrpc.php'; &nbsp; &nbsp;&nbsp; &nbsp;$username='admin'; &nbsp; &nbsp;&nbsp; &nbsp;$password='password'; &nbsp;...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>每次写点小插件都会想不起那些繁杂的filters到底叫些什么，此帖用于不定期记录以备忘。</p>
<p><span id="more-145"></span><br />
<div class='toc wptoc'>
<h2>Contents</h2>
<ol class='toc-odd level-1'>
	<li>
		<a href="#URL">添加URL重写规则</a>
	</li>
	<li>
		<a href="#Query_Vars">添加Query Vars</a>
	</li>
	<li>
		<a href="#">列印所有数据库查询</a>
	</li>
	<li>
		<a href="#_1">更换域名或网址</a>
	</li>
</ol>
</ol>
</ol>
</div>
<div class='wptoc-end'>&nbsp;</div></p>
<span id="URL"><h3>添加URL重写规则</h3></span>
<p>经常性需求。比如需要添加一个/submit而又不想新建页面，又或想增强文章列表以使得其能按某几种特定规则排序。添加Rewrite规则可以有两种形式：</p>
<ol>
<li>在后台设置固定链接的过程中添加。此种方式通过一次设置把处理过的新规则写入数据库。</li>
<li>在每个访问请求时添加，好处是写代码时便于测试。</li>
</ol>
<p>前一种在一些常用插件中会有存在。后一种比较少见，牵涉到的filter是<code>transient_rewrite_rules</code>，变量$rules。相关的文件及函数列表:</p>
<ol>
<li>/wp-includes/rewrite.php,WP_Rewrite::wp_rewrite_rules()</li>
<li>/wp-includes/functions.php,get_transient()</li>
</ol>
<p><ins datetime="2010-02-20T10:26:41+00:00">以上filter在2.9.2版中已移除。</ins></p>
<span id="Query_Vars"><h3>添加Query Vars</h3></span>
<p>经常性需求，与上一段关系密切。filter是<code>query_vars</code>，变量$vars。</p>
<span id=""><h3>列印所有数据库查询</h3></span>
<p>先作一个常量声明，$wpdb就会把所有的查询记录下来。<br />
<div class="code php" style="font-family: Georgia,serif;"><br />
<a href="http://www.php.net/define"><span style="color: #000066;">define</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'SAVEQUERIES'</span>,<span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span>;<br />
<br />
&nbsp;</div><br />
在页面底部输出即可<br />
<div class="code php" style="font-family: Georgia,serif;"><br />
<a href="http://www.php.net/global"><span style="color: #000066;">global</span></a> <span style="color: #0000ff;">$wpdb</span>;<br />
<a href="http://www.php.net/printf"><span style="color: #000066;">printf</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'&lt;pre&gt;%s&lt;/pre&gt;'</span>,<a href="http://www.php.net/print_r"><span style="color: #000066;">print_r</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$wpdb</span>-&gt;<span style="color: #006600;">queries</span>,<span style="color: #000000; font-weight: bold;">true</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<br />
<br />
&nbsp;</div><br />
可以先在页面底部输出查询数，如查询数过高，再来列印详细找出问题所在。<br />
<div class="code php" style="font-family: Georgia,serif;"><br />
<a href="http://www.php.net/printf"><span style="color: #000066;">printf</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'%d queries. %s seconds.'</span>, get_num_queries<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>, timer_stop<span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;<br />
<br />
&nbsp;</div>
<span id="_1"><h3>更换域名或网址</h3></span>
<p>先确认需要替换的行<br />
<code>mysql> select option_value from wp_options where option_value like 'http://%';</code></p>
<p><code>mysql> update wp_options set option_value = 'http://newaddress' where option_value like 'http://olddomain%'</code></p>
<img src="http://blog.efrees.com/?ak_action=api_record_view&id=145&type=feed" alt="" />

<h3>Related posts:</h3><ol><li><a href='http://blog.efrees.com/php-exec-import-mysql-data.html' rel='bookmark' title='Permanent Link: PHP exec导入mysql数据'>PHP exec导入mysql数据</a> <small>如前迁移MYSQL数据所述，往mysql导入数据只需一句mysql -u username -p dbname &lt; backup.sql就可以了。但在服务器不支持ssh的情况下，一般就只能用PHP脚本来导入。除了读入数据一条条去mysql_query之外，用exec来执行上述语句会快许多——如果服务器支持的话。 $cmd=sprintf&#40;'mysql -h %s...</small></li>
<li><a href='http://blog.efrees.com/wordpress-theme-berita-hack.html' rel='bookmark' title='Permanent Link: WordPress主题berita几处修改记录'>WordPress主题berita几处修改记录</a> <small>前阵子看到这篇《使用WordPress定制企业网站》介绍的berita这个主题。界面我很喜欢，以前也确曾帮朋友用wordpress做过企业网站，于是就去下载了官方原版来用。 当然世事无完美，更没有什么主题能够完全适应各种需求。使用中发现了一些小问题，或者仅仅是不符合个人需求之处，做了一些改动，特此记录。 选择空分类作为博客页 设置面板里Blog Section Settings->Pick Category for Your Blog...</small></li>
<li><a href='http://blog.efrees.com/archives/xmlrpc-use-to-publish-articles-wordpress' rel='bookmark' title='Permanent Link: 使用XMLRPC发布文章到wordpress'>使用XMLRPC发布文章到wordpress</a> <small>&nbsp; &nbsp;&nbsp; &nbsp;$xmlrpcurl='http://efrees.com/blog/xmlrpc.php'; &nbsp; &nbsp;&nbsp; &nbsp;$username='admin'; &nbsp; &nbsp;&nbsp; &nbsp;$password='password'; &nbsp;...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://blog.efrees.com/wordpress-plugin-dev-notes.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress主题berita几处修改记录</title>
		<link>http://blog.efrees.com/wordpress-theme-berita-hack.html</link>
		<comments>http://blog.efrees.com/wordpress-theme-berita-hack.html#comments</comments>
		<pubDate>Mon, 14 Dec 2009 08:36:55 +0000</pubDate>
		<dc:creator>muzik</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress theme]]></category>

		<guid isPermaLink="false">http://blog.efrees.com/?p=134</guid>
		<description><![CDATA[前阵子看到这篇《使用WordPress定制企业网站》介绍的berita这个主题。界面我很喜欢，以前也确曾帮朋友用wordpress做过企业网站，于是就去下载了官方原版来用。 当然世事无完美，更没有什么主题能够完全适应各种需求。使用中发现了一些小问题，或者仅仅是不符合个人需求之处，做了一些改动，特此记录。 选择空分类作为博客页 设置面板里Blog Section Settings->Pick Category for Your Blog Posts处，用于选择一个分类来做博客索引页。作者建议我们把所有分类都放在一个大分类之下，然后选择这个大分类。 但问题是，这里列出的分类不含直属文章数为0的分类，而上级分类一般没有直属文章。 改动:打开berita/library/functions/admin_functions.php,删除第32行 AND $wpdb-&#62;term_taxonomy.count &#62; '0' &#160; 分类博客页使用友好链接 设置了一个分类作为博客页之后，在主菜单Home之后就可以看到它了。但是它的链接形式是这样的:/?cat=3，我们希望它显示成友好链接/category/blog。 改动:打开berita/header.php,把第113行 if &#40; $catid &#60;&#62; &#34;&#34; &#41; &#123;....&#125; else &#123;&#125; &#160; 改为 if &#40; $catid&#41; &#123; &#160; &#160; &#160; $class=&#40;is_archive&#40;&#41; &#124;&#124; is_single&#40;&#41;&#41; ? ' class=&#34;current_page_item&#34;' : null; &#160; &#160; &#160; printf&#40;'&#60;li%s&#62;&#60;a href=&#34;%s&#34;&#62;%s&#60;/a&#62;&#60;/li&#62;',$class,get_category_link&#40;$catid&#41;,$blogcatname&#41;; &#160;&#125; &#160; 此处可进一步改动，以减少一次数据库查询。 [...]

<h3>Related posts:</h3><ol><li><a href='http://blog.efrees.com/alpha-s-categories-widget-for-wordpress.html' rel='bookmark' title='Permanent Link: Alpha&#8217;s Categories Widget for wordpress'>Alpha&#8217;s Categories Widget for wordpress</a> <small>近来用WordPress做一个小站，需要象Joomla一样能按Section展示多组分类。下了一个Breukie&#8217;s Categories Widget插件达成了这一功能。但当我随后升级到WordPress 2.8的时候，这个插件却不能完好的支持。看了一下源码，原来WordPress 2.8变更了Widgets的实现方法。于是只好自己动手，写了这个增强的Categories Widget插件：Alpha&#8217;s Categories Widget。 利用Alpha&#8217;s Categories...</small></li>
<li><a href='http://blog.efrees.com/creating-a-rss-feed-in-ruby-on-rails.html' rel='bookmark' title='Permanent Link: rails中创建RSS'>rails中创建RSS</a> <small>PostsController &nbsp; def index &nbsp; &nbsp; @posts = Item.all&#40;:limit=&gt;10&#41; &nbsp;...</small></li>
<li><a href='http://blog.efrees.com/archives/joomla-jpromoter-and-jreviews-hack' rel='bookmark' title='Permanent Link: Joomla JPromoter and JReviews Hack'>Joomla JPromoter and JReviews Hack</a> <small>&#8220;JPromoter&#8221;:joomlaequipment.com/content/view/4/19/ 是一个Joomla的SEF entention，用于把形如 @/index.php?option=com_content&#038;task=view&#038;id=9&#038;Itemid=75@ 这样的地址转换成 @/the-news/latest-news/curabitur-convallis-laoreet.html@ 。 就像wordpress旧时的一些版本一样，这种转换不支持中文。需要自己做一些修改。 h3. 安装JPromoter...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>前阵子看到这篇《<a href="http://blog.xiqiao.info/2009/11/30/592">使用WordPress定制企业网站</a>》介绍的<a href="http://bizzartic.com/bizzthemes/berita/">berita</a>这个主题。界面我很喜欢，以前也确曾帮朋友用wordpress做过企业网站，于是就去下载了官方原版来用。</p>
<p>当然世事无完美，更没有什么主题能够完全适应各种需求。使用中发现了一些小问题，或者仅仅是不符合个人需求之处，做了一些改动，特此记录。<br />
<div class='toc wptoc'>
<h2>Contents</h2>
<ol class='toc-odd level-1'>
	<li>
		<a href="#">选择空分类作为博客页</a>
	</li>
	<li>
		<a href="#_1">分类博客页使用友好链接</a>
	</li>
	<li>
		<a href="#Popular_Posts_Widget">Popular Posts Widget适应中文截断</a>
	</li>
	<li>
		<a href="#_2">相对时间出错</a>
	</li>
	<li>
		<a href="#microformats">不支持microformats</a>
	</li>
</ol>
</ol>
</ol>
</div>
<div class='wptoc-end'>&nbsp;</div><br />
<span id="more-134"></span></p>
<span id=""><h3>选择空分类作为博客页</h3></span>
<p>设置面板里Blog Section Settings->Pick Category for Your Blog Posts处，用于选择一个分类来做博客索引页。作者建议我们把所有分类都放在一个大分类之下，然后选择这个大分类。<br />
但问题是，这里列出的分类不含直属文章数为0的分类，而上级分类一般没有直属文章。</p>
<p>改动:打开berita/library/functions/admin_functions.php,删除第32行<br />
<div class="code php" style="font-family: Georgia,serif;">AND <span style="color: #0000ff;">$wpdb</span>-&gt;<span style="color: #006600;">term_taxonomy</span>.<a href="http://www.php.net/count"><span style="color: #000066;">count</span></a> &gt; <span style="color: #ff0000;">'0'</span><br />
&nbsp;</div>
<span id="_1"><h3>分类博客页使用友好链接</h3></span>
<p>设置了一个分类作为博客页之后，在主菜单Home之后就可以看到它了。但是它的链接形式是这样的:/?cat=3，我们希望它显示成友好链接/category/blog。</p>
<p>改动:打开berita/header.php,把第113行<br />
<div class="code php" style="font-family: Georgia,serif;"><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #0000ff;">$catid</span> &lt;&gt; <span style="color: #ff0000;">&quot;&quot;</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>....<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span><br />
&nbsp;</div><br />
改为<br />
<div class="code php" style="font-family: Georgia,serif;"><br />
<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #0000ff;">$catid</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$class</span>=<span style="color: #66cc66;">&#40;</span>is_archive<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> || is_single<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> ? <span style="color: #ff0000;">' class=&quot;current_page_item&quot;'</span> : <span style="color: #000000; font-weight: bold;">null</span>;<br />
&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/printf"><span style="color: #000066;">printf</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'&lt;li%s&gt;&lt;a href=&quot;%s&quot;&gt;%s&lt;/a&gt;&lt;/li&gt;'</span>,<span style="color: #0000ff;">$class</span>,get_category_link<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$catid</span><span style="color: #66cc66;">&#41;</span>,<span style="color: #0000ff;">$blogcatname</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp;<span style="color: #66cc66;">&#125;</span><br />
<br />
&nbsp;</div><br />
此处可进一步改动，以减少一次数据库查询。</p>
<span id="Popular_Posts_Widget"><h3>Popular Posts Widget适应中文截断</h3></span>
<p>berita自带了一个Popular Posts Widget，根据评论数量来显示条目。但是对中文标题会截出乱码。</p>
<p>改动:打开berita/library/functions/widgets_functions.php,把第306行<br />
<div class="code php" style="font-family: Georgia,serif;"><br />
&nbsp;<span style="color: #0000ff;">$first_post_title</span>=<a href="http://www.php.net/substr"><span style="color: #000066;">substr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$post_title</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">26</span><span style="color: #66cc66;">&#41;</span>;<br />
<br />
&nbsp;</div><br />
改为<br />
<div class="code php" style="font-family: Georgia,serif;"><br />
<span style="color: #0000ff;">$first_post_title</span>=<a href="http://www.php.net/function_exists"><span style="color: #000066;">function_exists</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'mb_substr'</span><span style="color: #66cc66;">&#41;</span> ? <a href="http://www.php.net/mb_substr"><span style="color: #000066;">mb_substr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$post_title</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">18</span><span style="color: #66cc66;">&#41;</span> : <a href="http://www.php.net/substr"><span style="color: #000066;">substr</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$post_title</span>,<span style="color: #cc66cc;">0</span>,<span style="color: #cc66cc;">26</span><span style="color: #66cc66;">&#41;</span>;<br />
<br />
&nbsp;</div>
<span id="_2"><h3>相对时间出错</h3></span>
<p>berita有一个Show relative dates in posts的选项，打开即会把文章的发布时间显示成Posted 1 day, 14 hours ago这样。但诡异的是，刚刚发布的文章，时间会显示成Posted 3 weeks, 6 days ago。</p>
<p>此问题在本地没有出现，暂时未知缘故。</p>
<span id="microformats"><h3>不支持microformats</h3></span>
<p>这个没什么说的，要改的地方太多，算了。</p>
<img src="http://blog.efrees.com/?ak_action=api_record_view&id=134&type=feed" alt="" />

<h3>Related posts:</h3><ol><li><a href='http://blog.efrees.com/alpha-s-categories-widget-for-wordpress.html' rel='bookmark' title='Permanent Link: Alpha&#8217;s Categories Widget for wordpress'>Alpha&#8217;s Categories Widget for wordpress</a> <small>近来用WordPress做一个小站，需要象Joomla一样能按Section展示多组分类。下了一个Breukie&#8217;s Categories Widget插件达成了这一功能。但当我随后升级到WordPress 2.8的时候，这个插件却不能完好的支持。看了一下源码，原来WordPress 2.8变更了Widgets的实现方法。于是只好自己动手，写了这个增强的Categories Widget插件：Alpha&#8217;s Categories Widget。 利用Alpha&#8217;s Categories...</small></li>
<li><a href='http://blog.efrees.com/creating-a-rss-feed-in-ruby-on-rails.html' rel='bookmark' title='Permanent Link: rails中创建RSS'>rails中创建RSS</a> <small>PostsController &nbsp; def index &nbsp; &nbsp; @posts = Item.all&#40;:limit=&gt;10&#41; &nbsp;...</small></li>
<li><a href='http://blog.efrees.com/archives/joomla-jpromoter-and-jreviews-hack' rel='bookmark' title='Permanent Link: Joomla JPromoter and JReviews Hack'>Joomla JPromoter and JReviews Hack</a> <small>&#8220;JPromoter&#8221;:joomlaequipment.com/content/view/4/19/ 是一个Joomla的SEF entention，用于把形如 @/index.php?option=com_content&#038;task=view&#038;id=9&#038;Itemid=75@ 这样的地址转换成 @/the-news/latest-news/curabitur-convallis-laoreet.html@ 。 就像wordpress旧时的一些版本一样，这种转换不支持中文。需要自己做一些修改。 h3. 安装JPromoter...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://blog.efrees.com/wordpress-theme-berita-hack.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Alpha&#8217;s Categories Widget for wordpress</title>
		<link>http://blog.efrees.com/alpha-s-categories-widget-for-wordpress.html</link>
		<comments>http://blog.efrees.com/alpha-s-categories-widget-for-wordpress.html#comments</comments>
		<pubDate>Mon, 22 Jun 2009 05:52:28 +0000</pubDate>
		<dc:creator>muzik</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.efrees.com/?p=98</guid>
		<description><![CDATA[近来用WordPress做一个小站，需要象Joomla一样能按Section展示多组分类。下了一个Breukie&#8217;s Categories Widget插件达成了这一功能。但当我随后升级到WordPress 2.8的时候，这个插件却不能完好的支持。看了一下源码，原来WordPress 2.8变更了Widgets的实现方法。于是只好自己动手，写了这个增强的Categories Widget插件：Alpha&#8217;s Categories Widget。 利用Alpha&#8217;s Categories Widget展示多组分类 1. 创建分类 2. 按分组添加Widgets 3. 分组展示效果 下载Alpha&#8217;s Categories Widget Alpha&#8217;s Categories Widget &#124; Live demo Related posts:关闭 WordPress 的缩略图功能 爱上水煮鱼的猫编译了一篇《WordPress Hack 技巧》,其中提到： Tip 8：关闭 WordPress 的缩略图功能（替代方法） 当你上传一张图片到 WordPress 的时候，它会创建两张额外的缩略图，我不知道怎么在... CakePHP 实例教程: Categories Acts as Tree Tree是CakePHP 1.2的核心Behaviors之一，可以用来轻易的实现无限极分类，并呈现树状列表。 图片来源:Tree traversa,WIKIPEDIA 基础实例 建立数据表 CREATE TABLE `categories` [...]

<h3>Related posts:</h3><ol><li><a href='http://blog.efrees.com/archives/close-wordpress-thumbnails-function' rel='bookmark' title='Permanent Link: 关闭 WordPress 的缩略图功能'>关闭 WordPress 的缩略图功能</a> <small>爱上水煮鱼的猫编译了一篇《WordPress Hack 技巧》,其中提到： Tip 8：关闭 WordPress 的缩略图功能（替代方法） 当你上传一张图片到 WordPress 的时候，它会创建两张额外的缩略图，我不知道怎么在...</small></li>
<li><a href='http://blog.efrees.com/cakephp-tutorial-no-1-categories-acts-as-tree.html' rel='bookmark' title='Permanent Link: CakePHP 实例教程: Categories Acts as Tree'>CakePHP 实例教程: Categories Acts as Tree</a> <small>Tree是CakePHP 1.2的核心Behaviors之一，可以用来轻易的实现无限极分类，并呈现树状列表。 图片来源:Tree traversa,WIKIPEDIA 基础实例 建立数据表 CREATE TABLE `categories` &#40;...</small></li>
<li><a href='http://blog.efrees.com/cakephp-set-data-for-view-trap.html' rel='bookmark' title='Permanent Link: cakephp controller中设置viewVars时的陷阱'>cakephp controller中设置viewVars时的陷阱</a> <small>要从controller传递变量到view,需要使用set method。基本的用法是 $this-&gt;set&#40;'categories',$categories&#41;; &nbsp; 更顺手的写法是 $this-&gt;set&#40;compact&#40;'categories'&#41;&#41;; &nbsp; 多个变量时可以这样写 $this-&gt;set&#40;'categories',$categories&#41;; $this-&gt;set&#40;'category',$category&#41;;...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>近来用WordPress做一个小站，需要象Joomla一样能按Section展示多组分类。下了一个Breukie&#8217;s Categories Widget插件达成了这一功能。但当我随后升级到WordPress 2.8的时候，这个插件却不能完好的支持。看了一下源码，原来WordPress 2.8变更了Widgets的实现方法。于是只好自己动手，写了这个增强的Categories Widget插件：Alpha&#8217;s Categories Widget。<br />
<span id="more-98"></span></p>
<span id="Alpha8217s_Categories_Widget"><h2>利用Alpha&#8217;s Categories Widget展示多组分类</h2></span>
<p>1.  创建分类</p>
<p><img src="http://wordpress.org/extend/plugins/alphas-categories-widget/screenshot-1.png" alt="创建分类" /></p>
<p>2. 按分组添加Widgets</p>
<p><img src="http://wordpress.org/extend/plugins/alphas-categories-widget/screenshot-2.png" alt="按分组添加widgets" /></p>
<p>3. 分组展示效果</p>
<p><img src="http://wordpress.org/extend/plugins/alphas-categories-widget/screenshot-3.png" alt="分组展示效果" /></p>
<span id="Alpha8217s_Categories_Widget_1"><h2>下载Alpha&#8217;s Categories Widget</h2></span>
<p><a href="http://wordpress.org/extend/plugins/alphas-categories-widget/">Alpha&#8217;s Categories Widget</a> | <a href="http://phonedelta.com/">Live demo</a></p>
<img src="http://blog.efrees.com/?ak_action=api_record_view&id=98&type=feed" alt="" />

<h3>Related posts:</h3><ol><li><a href='http://blog.efrees.com/archives/close-wordpress-thumbnails-function' rel='bookmark' title='Permanent Link: 关闭 WordPress 的缩略图功能'>关闭 WordPress 的缩略图功能</a> <small>爱上水煮鱼的猫编译了一篇《WordPress Hack 技巧》,其中提到： Tip 8：关闭 WordPress 的缩略图功能（替代方法） 当你上传一张图片到 WordPress 的时候，它会创建两张额外的缩略图，我不知道怎么在...</small></li>
<li><a href='http://blog.efrees.com/cakephp-tutorial-no-1-categories-acts-as-tree.html' rel='bookmark' title='Permanent Link: CakePHP 实例教程: Categories Acts as Tree'>CakePHP 实例教程: Categories Acts as Tree</a> <small>Tree是CakePHP 1.2的核心Behaviors之一，可以用来轻易的实现无限极分类，并呈现树状列表。 图片来源:Tree traversa,WIKIPEDIA 基础实例 建立数据表 CREATE TABLE `categories` &#40;...</small></li>
<li><a href='http://blog.efrees.com/cakephp-set-data-for-view-trap.html' rel='bookmark' title='Permanent Link: cakephp controller中设置viewVars时的陷阱'>cakephp controller中设置viewVars时的陷阱</a> <small>要从controller传递变量到view,需要使用set method。基本的用法是 $this-&gt;set&#40;'categories',$categories&#41;; &nbsp; 更顺手的写法是 $this-&gt;set&#40;compact&#40;'categories'&#41;&#41;; &nbsp; 多个变量时可以这样写 $this-&gt;set&#40;'categories',$categories&#41;; $this-&gt;set&#40;'category',$category&#41;;...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://blog.efrees.com/alpha-s-categories-widget-for-wordpress.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>为WordPress里的中文文章自动截取摘要</title>
		<link>http://blog.efrees.com/for-wordpress-article-in-the-chinese-auto-interception-abstract.html</link>
		<comments>http://blog.efrees.com/for-wordpress-article-in-the-chinese-auto-interception-abstract.html#comments</comments>
		<pubDate>Sun, 11 Jan 2009 15:03:59 +0000</pubDate>
		<dc:creator>muzik</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://efrees.com/blog/?p=89</guid>
		<description><![CDATA[一般而言，文章列表页有三种形式: 只显示文章标题； 显示文章标题及正文摘要； 显示文章标题及正文全。 以个人浏览体验而言，我最喜欢显示摘要的网站。只显示文章标题的做法，浏览十分便捷，但是经常有标题党潜伏。显示全文的做法呢，一个列表页被拉的有万里长城那么长，找各篇文章的标题都要找半天。 此外，从SEO的角度，列表里显示全文也很容易坠入Duplicate content的陷阱。在WordPress里，一篇文章除了独立显示的页面之外，还会被显示在首页、存档页、分类页和标签页内,在这些列表页只显示摘要可以大大减少被google判断为重复内容的可能。 wordpress在显示文章内容的时候，本身就有the_content()和the_excerpt()两种方法。全者用于显示全文，后者用于显示概要。概要可以单独撰写，如果为空则截取正文替代。在英文blog里，使用the_excerpt()输出的效果相当不错，他会调用wp_trim_excerpt()来截取正文开头的55个词，作为摘要。它利用的是英文单词之间以空格分割的特性，以空格为分隔符来截取字串。但中文段落里，字词之间却并不使用空格分割，这样自动截取出来的摘要，往往就是正文全文。 针对中文文章自动截取摘要的解决方案 移除默认的wp_trim_excerpt,另行处理摘要。考虑到中文的特性，可以采用&#8217;。&#8217;为分割符来截取，每篇文章截取开头数句作为摘要。 remove_filter&#40;'get_the_excerpt', 'wp_trim_excerpt'&#41;; add_filter&#40;'get_the_excerpt','wp_trim_excerpt_cn'&#41;; function wp_trim_excerpt_cn&#40;$text&#41; &#123; &#160; &#160; global $locale; &#160; &#160; if&#40;$locale !== 'zh_CN'&#41; return wp_trim_excerpt&#40;$text&#41;; &#160; &#160;if &#40; '' == $text &#41; &#123; &#160; &#160;&#160; &#160;$text = get_the_content&#40;''&#41;; &#160; &#160;&#160; &#160;$text = strip_shortcodes&#40; $text &#41;; &#160; &#160;&#160; &#160;$text = str_replace&#40;']]&#62;', ']]&#38;gt;', $text&#41;; &#160; [...]

<h3>Related posts:</h3><ol><li><a href='http://blog.efrees.com/php-code-display-ads-for-new-visitors-only.html' rel='bookmark' title='Permanent Link: 只给新访客显示广告的php代码'>只给新访客显示广告的php代码</a> <small>在落伍者论坛看到一篇帖子，说“回头客多了 反而不赚钱了”。正验证了此前的建议可能是有意义的：只给通过搜索引擎进入网站的访客展示Adsense广告。 事实上自去年在一个老外blog上(具体地址忘了)看到有人这么提出之后，我就一直在这么实行。具体的方法就是先检测referer，判断用户来路并设置cookie。以此作为是否显示广告的依据。 先检测用户来路 check_referer&#40;&#41;; function check_referer&#40;&#41; &#123; &nbsp; &nbsp;global...</small></li>
<li><a href='http://blog.efrees.com/archives/jquery-in_array-function' rel='bookmark' title='Permanent Link: JavaScript in_array function'>JavaScript in_array function</a> <small>jQuery有个inArray( value, array ),返回的是key,如果没找到，则返回-1。 用的时候老混淆，所以写一个可以和php里in_array一样用法的。 &nbsp; &nbsp;function in_array&#40;v,a&#41;&#123; &nbsp; &nbsp;&nbsp;...</small></li>
<li><a href='http://blog.efrees.com/archives/php-text-to-picture-a-number-of-issues' rel='bookmark' title='Permanent Link: php文本转图片的若干问题'>php文本转图片的若干问题</a> <small>很多社区都有一套所谓的关键词审查制度。PHPBB、Discuz等社区软件，是把帖子中出现的&#8221;不雅词汇&#8221;替换成星号或者别的什么符号，这虽然会让我们经常看到&#8221; @*天*地*大家@ &#8220;或者&#8221; @依*@ &#8220;这样的火星词，但至少，还能看到。 在天涯却又是另外一番情况。如果帖子里有&#8221;违禁词汇&#8221;的话，一般就会发不出去，偶尔的，虽然发出去了，但却会得到一个提示，声明因为文中含有违禁词汇，需要经过人工审查方能出现云云。 某种程度上来说，天涯这种特色文化也是有好处的，至少，有助于发扬我们古文中通假字的传统，有时候，还能看到词字的倒置用法。前段时间carrefour话题沸扬的时候，爱青们的文章里充斥着&#8221;嘉乐福&#8221;、&#8221;福乐家&#8221;、&#8221;乐家复&#8221;，如此种种。我曾为此嘲笑一位朋友说：可叹楼上的小岛兄，爱国也爱到被删帖的地步了&#8211;怕是别人还不乐意要你爱罢。 只是，发帖总要几次三番修改可能的过滤词，却还是发布出去&#8211;那些过滤词的名单是全然未知的。这种行为和自宫也没太大差别，想到这一点就让人心头抑郁。 于是写了 &#8220;text2img&#8221;:http://efrees.com/text2img...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>一般而言，文章列表页有三种形式:</p>
<ol>
<li> 只显示文章标题；</li>
<li> 显示文章标题及正文摘要；</li>
<li> 显示文章标题及正文全。</li>
</ol>
<p>以个人浏览体验而言，我最喜欢显示摘要的网站。只显示文章标题的做法，浏览十分便捷，但是经常有标题党潜伏。显示全文的做法呢，一个列表页被拉的有万里长城那么长，找各篇文章的标题都要找半天。<br />
<span id="more-89"></span><br />
此外，从SEO的角度，列表里显示全文也很容易坠入<a id="sc0d" title="Duplicate content" href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&amp;answer=66359" target="_blank">Duplicate content</a>的陷阱。在WordPress里，一篇文章除了独立显示的页面之外，还会被显示在首页、存档页、分类页和标签页内,在这些列表页只显示摘要可以大大减少被google判断为重复内容的可能。</p>
<p>wordpress在显示文章内容的时候，本身就有the_content()和the_excerpt()两种方法。全者用于显示全文，后者用于显示概要。概要可以单独撰写，如果为空则截取正文替代。在英文blog里，使用the_excerpt()输出的效果相当不错，他会调用wp_trim_excerpt()来截取正文开头的55个词，作为摘要。它利用的是英文单词之间以空格分割的特性，以空格为分隔符来截取字串。但中文段落里，字词之间却并不使用空格分割，这样自动截取出来的摘要，往往就是正文全文。</p>
<span id=""><h2>针对中文文章自动截取摘要的解决方案</h2></span>
<p>移除默认的wp_trim_excerpt,另行处理摘要。考虑到中文的特性，可以采用&#8217;。&#8217;为分割符来截取，每篇文章截取开头数句作为摘要。</p>
<div class="code php" style="font-family: Georgia,serif;"><br />
remove_filter<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'get_the_excerpt'</span>, <span style="color: #ff0000;">'wp_trim_excerpt'</span><span style="color: #66cc66;">&#41;</span>;<br />
add_filter<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'get_the_excerpt'</span>,<span style="color: #ff0000;">'wp_trim_excerpt_cn'</span><span style="color: #66cc66;">&#41;</span>;<br />
<span style="color: #000000; font-weight: bold;">function</span> wp_trim_excerpt_cn<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$text</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; <a href="http://www.php.net/global"><span style="color: #000066;">global</span></a> <span style="color: #0000ff;">$locale</span>;<br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$locale</span> !== <span style="color: #ff0000;">'zh_CN'</span><span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">return</span> wp_trim_excerpt<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$text</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp;<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span> <span style="color: #ff0000;">''</span> == <span style="color: #0000ff;">$text</span> <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$text</span> = get_the_content<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">''</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$text</span> = strip_shortcodes<span style="color: #66cc66;">&#40;</span> <span style="color: #0000ff;">$text</span> <span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$text</span> = <a href="http://www.php.net/str_replace"><span style="color: #000066;">str_replace</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">']]&gt;'</span>, <span style="color: #ff0000;">']]&amp;gt;'</span>, <span style="color: #0000ff;">$text</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$text</span> = <a href="http://www.php.net/strip_tags"><span style="color: #000066;">strip_tags</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$text</span>,<span style="color: #ff0000;">'&lt;a&gt;&lt;img&gt;'</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$excerpt_length</span> = apply_filters<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'excerpt_length'</span>, <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$words</span> = <a href="http://www.php.net/explode"><span style="color: #000066;">explode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'。'</span>, <span style="color: #0000ff;">$text</span>, <span style="color: #0000ff;">$excerpt_length</span> + <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><a href="http://www.php.net/count"><span style="color: #000066;">count</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$words</span><span style="color: #66cc66;">&#41;</span> &gt; <span style="color: #0000ff;">$excerpt_length</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<a href="http://www.php.net/array_pop"><span style="color: #000066;">array_pop</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$words</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/array_push"><span style="color: #000066;">array_push</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$words</span>, <span style="color: #ff0000;">'&lt;a href=&quot;'</span>.get_permalink<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>.<span style="color: #ff0000;">'&quot;&gt;[...]&lt;/a&gt;'</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$text</span> = <a href="http://www.php.net/implode"><span style="color: #000066;">implode</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'。'</span>, <span style="color: #0000ff;">$words</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span><br />
&nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span><br />
&nbsp; &nbsp;<span style="color: #b1b100;">return</span> <span style="color: #0000ff;">$text</span>;<br />
<span style="color: #66cc66;">&#125;</span><br />
<br />
&nbsp;</div>
<p>以上代码可添加到所用主题functions.php内。</p>
<img src="http://blog.efrees.com/?ak_action=api_record_view&id=89&type=feed" alt="" />

<h3>Related posts:</h3><ol><li><a href='http://blog.efrees.com/php-code-display-ads-for-new-visitors-only.html' rel='bookmark' title='Permanent Link: 只给新访客显示广告的php代码'>只给新访客显示广告的php代码</a> <small>在落伍者论坛看到一篇帖子，说“回头客多了 反而不赚钱了”。正验证了此前的建议可能是有意义的：只给通过搜索引擎进入网站的访客展示Adsense广告。 事实上自去年在一个老外blog上(具体地址忘了)看到有人这么提出之后，我就一直在这么实行。具体的方法就是先检测referer，判断用户来路并设置cookie。以此作为是否显示广告的依据。 先检测用户来路 check_referer&#40;&#41;; function check_referer&#40;&#41; &#123; &nbsp; &nbsp;global...</small></li>
<li><a href='http://blog.efrees.com/archives/jquery-in_array-function' rel='bookmark' title='Permanent Link: JavaScript in_array function'>JavaScript in_array function</a> <small>jQuery有个inArray( value, array ),返回的是key,如果没找到，则返回-1。 用的时候老混淆，所以写一个可以和php里in_array一样用法的。 &nbsp; &nbsp;function in_array&#40;v,a&#41;&#123; &nbsp; &nbsp;&nbsp;...</small></li>
<li><a href='http://blog.efrees.com/archives/php-text-to-picture-a-number-of-issues' rel='bookmark' title='Permanent Link: php文本转图片的若干问题'>php文本转图片的若干问题</a> <small>很多社区都有一套所谓的关键词审查制度。PHPBB、Discuz等社区软件，是把帖子中出现的&#8221;不雅词汇&#8221;替换成星号或者别的什么符号，这虽然会让我们经常看到&#8221; @*天*地*大家@ &#8220;或者&#8221; @依*@ &#8220;这样的火星词，但至少，还能看到。 在天涯却又是另外一番情况。如果帖子里有&#8221;违禁词汇&#8221;的话，一般就会发不出去，偶尔的，虽然发出去了，但却会得到一个提示，声明因为文中含有违禁词汇，需要经过人工审查方能出现云云。 某种程度上来说，天涯这种特色文化也是有好处的，至少，有助于发扬我们古文中通假字的传统，有时候，还能看到词字的倒置用法。前段时间carrefour话题沸扬的时候，爱青们的文章里充斥着&#8221;嘉乐福&#8221;、&#8221;福乐家&#8221;、&#8221;乐家复&#8221;，如此种种。我曾为此嘲笑一位朋友说：可叹楼上的小岛兄，爱国也爱到被删帖的地步了&#8211;怕是别人还不乐意要你爱罢。 只是，发帖总要几次三番修改可能的过滤词，却还是发布出去&#8211;那些过滤词的名单是全然未知的。这种行为和自宫也没太大差别，想到这一点就让人心头抑郁。 于是写了 &#8220;text2img&#8221;:http://efrees.com/text2img...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://blog.efrees.com/for-wordpress-article-in-the-chinese-auto-interception-abstract.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>使用XMLRPC发布文章到wordpress</title>
		<link>http://blog.efrees.com/archives/xmlrpc-use-to-publish-articles-wordpress</link>
		<comments>http://blog.efrees.com/archives/xmlrpc-use-to-publish-articles-wordpress#comments</comments>
		<pubDate>Thu, 02 Oct 2008 08:05:03 +0000</pubDate>
		<dc:creator>muzik</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://efrees.com/blog/?p=63</guid>
		<description><![CDATA[&#160; &#160;&#160; &#160;$xmlrpcurl='http://efrees.com/blog/xmlrpc.php'; &#160; &#160;&#160; &#160;$username='admin'; &#160; &#160;&#160; &#160;$password='password'; &#160; &#160;&#160; &#160;$postTitle='标题'; &#160; &#160;&#160; &#160;$postContent='正文正文正文'; &#160; &#160;&#160; &#160;require&#40;'class-IXR.php'&#41;;&#160; // /wordpress/wp-includes/class-IXR.php &#160; &#160;&#160; &#160;$client = new IXR_Client&#40;$xmlrpcurl&#41;; &#160; &#160;&#160; &#160; &#160; &#160;&#160; &#160;$params=array&#40; &#160; &#160;&#160; &#160;&#160; &#160;'', &#160; &#160;&#160; &#160;&#160; &#160;'blog_ID'=&#62;'n/a', &#160; &#160;&#160; &#160;&#160; &#160;'user_login'=&#62;$username, &#160; &#160;&#160; &#160;&#160; &#160;'user_pass'=&#62;$password, &#160; &#160;&#160; &#160;&#160; &#160;'post_content'=&#62;'&#60;title&#62;' . $postTitle . [...]

<h3>Related posts:</h3><ol><li><a href='http://blog.efrees.com/php-exec-import-mysql-data.html' rel='bookmark' title='Permanent Link: PHP exec导入mysql数据'>PHP exec导入mysql数据</a> <small>如前迁移MYSQL数据所述，往mysql导入数据只需一句mysql -u username -p dbname &lt; backup.sql就可以了。但在服务器不支持ssh的情况下，一般就只能用PHP脚本来导入。除了读入数据一条条去mysql_query之外，用exec来执行上述语句会快许多——如果服务器支持的话。 $cmd=sprintf&#40;'mysql -h %s...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><div class="code php" style="font-family: Georgia,serif;"><br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$xmlrpcurl</span>=<span style="color: #ff0000;">'http://efrees.com/blog/xmlrpc.php'</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$username</span>=<span style="color: #ff0000;">'admin'</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$password</span>=<span style="color: #ff0000;">'password'</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$postTitle</span>=<span style="color: #ff0000;">'标题'</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$postContent</span>=<span style="color: #ff0000;">'正文正文正文'</span>;<br />
<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #b1b100;">require</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'class-IXR.php'</span><span style="color: #66cc66;">&#41;</span>;&nbsp; <span style="color: #808080; font-style: italic;">// /wordpress/wp-includes/class-IXR.php</span><br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$client</span> = <span style="color: #000000; font-weight: bold;">new</span> IXR_Client<span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$xmlrpcurl</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$params</span>=<a href="http://www.php.net/array"><span style="color: #000066;">array</span></a><span style="color: #66cc66;">&#40;</span><br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #ff0000;">''</span>,<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #ff0000;">'blog_ID'</span>=&gt;<span style="color: #ff0000;">'n/a'</span>,<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #ff0000;">'user_login'</span>=&gt;<span style="color: #0000ff;">$username</span>,<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #ff0000;">'user_pass'</span>=&gt;<span style="color: #0000ff;">$password</span>,<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #ff0000;">'post_content'</span>=&gt;<span style="color: #ff0000;">'&lt;title&gt;'</span> . <span style="color: #0000ff;">$postTitle</span> . <span style="color: #ff0000;">'&lt;/title&gt;'</span> . <span style="color: #0000ff;">$postContent</span>,<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #ff0000;">'publish'</span>=&gt;true<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$params</span>=<a href="http://www.php.net/array_values"><span style="color: #000066;">array_values</span></a><span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$params</span><span style="color: #66cc66;">&#41;</span>;<br />
<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$client</span>-&gt;<span style="color: #006600;">query</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;blogger.newPost&quot;</span>,<span style="color: #0000ff;">$params</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #0000ff;">$response</span>=<span style="color: #0000ff;">$client</span>-&gt;<span style="color: #006600;">getResponse</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0000ff;">$response</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'faultCode'</span><span style="color: #66cc66;">&#93;</span>==<span style="color: #cc66cc;">0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'Success'</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;<a href="http://www.php.net/print"><span style="color: #000066;">print</span></a> <span style="color: #ff0000;">'Fail:'</span> . <span style="color: #0000ff;">$response</span><span style="color: #66cc66;">&#91;</span><span style="color: #ff0000;">'faultString'</span><span style="color: #66cc66;">&#93;</span>;<br />
&nbsp; &nbsp;&nbsp; &nbsp;<span style="color: #66cc66;">&#125;</span><br />
<br />
&nbsp;</div>
<img src="http://blog.efrees.com/?ak_action=api_record_view&id=63&type=feed" alt="" />

<h3>Related posts:</h3><ol><li><a href='http://blog.efrees.com/php-exec-import-mysql-data.html' rel='bookmark' title='Permanent Link: PHP exec导入mysql数据'>PHP exec导入mysql数据</a> <small>如前迁移MYSQL数据所述，往mysql导入数据只需一句mysql -u username -p dbname &lt; backup.sql就可以了。但在服务器不支持ssh的情况下，一般就只能用PHP脚本来导入。除了读入数据一条条去mysql_query之外，用exec来执行上述语句会快许多——如果服务器支持的话。 $cmd=sprintf&#40;'mysql -h %s...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://blog.efrees.com/archives/xmlrpc-use-to-publish-articles-wordpress/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>关闭 WordPress 的缩略图功能</title>
		<link>http://blog.efrees.com/archives/close-wordpress-thumbnails-function</link>
		<comments>http://blog.efrees.com/archives/close-wordpress-thumbnails-function#comments</comments>
		<pubDate>Tue, 19 Aug 2008 04:16:46 +0000</pubDate>
		<dc:creator>muzik</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[blogging tips]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://efrees.com/blog/?p=43</guid>
		<description><![CDATA[爱上水煮鱼的猫编译了一篇《WordPress Hack 技巧》,其中提到： Tip 8：关闭 WordPress 的缩略图功能（替代方法） 当你上传一张图片到 WordPress 的时候，它会创建两张额外的缩略图，我不知道怎么在 WordPress 中阻止缩略图生成，但是如果你是用 Windows Live Writer 发表文章，就会有一个替代方法。 只使用 FTP 模式来发布图片，这会自动阻止缩略图生成，因为 FTP 上传图片是另外一种工作方式。 事实上，不需要缩略图的话，有一个更简洁的办法。只需要在Setting &#8211; Miscellaneous处把相应的image size设为0即可。Thumbnail size设为0,则不生成小图，Medium size为0，则不生成中图。都不需要的话，都设为0便是。 Related posts:Alpha&#8217;s Categories Widget for wordpress 近来用WordPress做一个小站，需要象Joomla一样能按Section展示多组分类。下了一个Breukie&#8217;s Categories Widget插件达成了这一功能。但当我随后升级到WordPress 2.8的时候，这个插件却不能完好的支持。看了一下源码，原来WordPress 2.8变更了Widgets的实现方法。于是只好自己动手，写了这个增强的Categories Widget插件：Alpha&#8217;s Categories Widget。 利用Alpha&#8217;s Categories... WordPress + Maxcdn + W3 Total Cache笔记 买了一份Maxcdn的CDN服务1000 GB of Pre-Paid Bandwidth [...]

<h3>Related posts:</h3><ol><li><a href='http://blog.efrees.com/alpha-s-categories-widget-for-wordpress.html' rel='bookmark' title='Permanent Link: Alpha&#8217;s Categories Widget for wordpress'>Alpha&#8217;s Categories Widget for wordpress</a> <small>近来用WordPress做一个小站，需要象Joomla一样能按Section展示多组分类。下了一个Breukie&#8217;s Categories Widget插件达成了这一功能。但当我随后升级到WordPress 2.8的时候，这个插件却不能完好的支持。看了一下源码，原来WordPress 2.8变更了Widgets的实现方法。于是只好自己动手，写了这个增强的Categories Widget插件：Alpha&#8217;s Categories Widget。 利用Alpha&#8217;s Categories...</small></li>
<li><a href='http://blog.efrees.com/wordpress-maxcdn-w3-total-cache.html' rel='bookmark' title='Permanent Link: WordPress + Maxcdn + W3 Total Cache笔记'>WordPress + Maxcdn + W3 Total Cache笔记</a> <small>买了一份Maxcdn的CDN服务1000 GB of Pre-Paid Bandwidth Special，目前的价格是10美元，支持Paypal未认证用户余额付款。此项服务按流量付费，10美元1000G，超出部分5000G以内9.9分每G，往后7.5分每G。服务器主要分布在北美，少量在欧洲，并声称正计划在亚洲香港、新加坡、东京等地部署。 使用W3 Total Cache插件可以很便捷的让WordPress搭建的blog用上这一服务。 MaxCDN...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>爱上水煮鱼的猫编译了一篇《<a href="http://fairyfish.net/2008/08/17/wordpress-hack-tips">WordPress Hack 技巧</a>》,其中提到：</p>
<blockquote><p><strong>Tip 8：关闭 WordPress 的缩略图功能（替代方法）</strong></p>
<p>当你上传一张图片到 WordPress 的时候，它会创建两张额外的缩略图，我不知道怎么在 WordPress 中阻止缩略图生成，但是如果你是用 Windows Live Writer 发表文章，就会有一个替代方法。</p>
<p>只使用 FTP 模式来发布图片，这会自动阻止缩略图生成，因为 FTP 上传图片是另外一种工作方式。</p></blockquote>
<p>事实上，不需要缩略图的话，有一个更简洁的办法。只需要在Setting &#8211; Miscellaneous处把相应的image size设为0即可。Thumbnail size设为0,则不生成小图，Medium size为0，则不生成中图。都不需要的话，都设为0便是。</p>
<img src="http://blog.efrees.com/?ak_action=api_record_view&id=43&type=feed" alt="" />

<h3>Related posts:</h3><ol><li><a href='http://blog.efrees.com/alpha-s-categories-widget-for-wordpress.html' rel='bookmark' title='Permanent Link: Alpha&#8217;s Categories Widget for wordpress'>Alpha&#8217;s Categories Widget for wordpress</a> <small>近来用WordPress做一个小站，需要象Joomla一样能按Section展示多组分类。下了一个Breukie&#8217;s Categories Widget插件达成了这一功能。但当我随后升级到WordPress 2.8的时候，这个插件却不能完好的支持。看了一下源码，原来WordPress 2.8变更了Widgets的实现方法。于是只好自己动手，写了这个增强的Categories Widget插件：Alpha&#8217;s Categories Widget。 利用Alpha&#8217;s Categories...</small></li>
<li><a href='http://blog.efrees.com/wordpress-maxcdn-w3-total-cache.html' rel='bookmark' title='Permanent Link: WordPress + Maxcdn + W3 Total Cache笔记'>WordPress + Maxcdn + W3 Total Cache笔记</a> <small>买了一份Maxcdn的CDN服务1000 GB of Pre-Paid Bandwidth Special，目前的价格是10美元，支持Paypal未认证用户余额付款。此项服务按流量付费，10美元1000G，超出部分5000G以内9.9分每G，往后7.5分每G。服务器主要分布在北美，少量在欧洲，并声称正计划在亚洲香港、新加坡、东京等地部署。 使用W3 Total Cache插件可以很便捷的让WordPress搭建的blog用上这一服务。 MaxCDN...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://blog.efrees.com/archives/close-wordpress-thumbnails-function/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk
Page Caching using disk (enhanced) (user agent is rejected)

Served from: blog.efrees.com @ 2010-09-10 11:53:14 -->