<?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>Domety &#187; 小工具</title>
	<atom:link href="http://domety.com/archives/tag/%e5%b0%8f%e5%b7%a5%e5%85%b7/feed/" rel="self" type="application/rss+xml" />
	<link>http://domety.com</link>
	<description>分享软件、互联网应用技巧以及开发技能</description>
	<lastBuildDate>Fri, 03 Feb 2012 14:02:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>wordpress代码实现&#8221;最近评论&#8221;</title>
		<link>http://domety.com/archives/177/</link>
		<comments>http://domety.com/archives/177/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 14:18:55 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[程序开发]]></category>
		<category><![CDATA[小工具]]></category>

		<guid isPermaLink="false">http://domety.com/?p=177</guid>
		<description><![CDATA[这几天在专心做的我的wordpress主题，一至于没有更新网站。现在主题雏形已经出来了，在接下来的几天里，我会分享在主题制作方面的方法和技巧。
正如你看到的标题，没错，今天DDBug介绍的是如何用代码实现显示&#8221;最新评论&#8221;。或许你会说wordpress本身就已经自带了这个小工具了啊？你为什么还要用代码实现呢？这不是没事找事做吗？
恩，你说对了，我就是没事找事做。那个自带的“最近评论”小工具我正在使用，但是并不是我想要的效果。我想要的效果就是大家最常见的那种可以看到评论者说的内容，而不是自带的那种“某某某在某篇文章上的评论”。

实现方法
以显示最近的10条评论为例，以下是实现代码
&#60;h2&#62;最新评论&#60;/h2&#62;
  &#60;ul&#62;
  &#60;?php
   $comments = get_comments('number=10');
   foreach($comments as $comment) {
    echo '&#60;li&#62;&#60;a href="'.get_comment_link().'" title="在 '.get_the_title($comment-&#62;comment_post_ID).' 上的评论"&#62;'.get_comment_author().' : '.$comment-&#62;comment_content.'&#60;/a&#62;&#60;/li&#62;';
   }
  ?&#62;
  &#60;/ul&#62;
当你点击评论的时候，会自动定位到该评论所在位置。你可以把以上代码写入sidebar.php的开始之处进行测试。
相关函数说明
这里主要用到了一个get_comments()函数，通过传递参数&#8217;number=10&#8242;来获取最新的10条评论列表，该列表以数组的形式保存在$comments变量中。你可以通过更改number=10的数字来决定显示的评论个数，比如number=15就显示最新的15条评论。
然后通过一个循环对$comments数据进行遍历，并把每一个评论对象保存在变量$comment中，这样我们就可以调用comment-template.php中的函数，像本例中用到的get_comment_link和get_comment_author，分别获取评论的链接地址和评论者名称。
题外话
本来我是想制作一个小工具提供出来的，但是想想这个小工具确实也太“小”了，就没有制作。准备以后把相关的功能都集中到一个插件中制作。
接下来一段时间的安排：
话说也快要过年了，春节的时候我肯定是要回老家的，中间会有一段时间不能更新网站，也没有时间去研究wordpress了。因此我打算年前这一段时间主要精力还是放在主题的制作和优化上。年后制作一个经过优化的插件，包括本文提到的“最近评论”，以及之前介绍过的“随机文章”、“相关文章”，还有以后的“浏览最多的文章”、“评论最多的文章”。至于优化到什么效果，大家就拭目以待吧。
]]></description>
			<content:encoded><![CDATA[<p>这几天在专心做的我的wordpress主题，一至于没有更新网站。现在主题雏形已经出来了，在接下来的几天里，我会分享在主题制作方面的方法和技巧。</p>
<p>正如你看到的标题，没错，今天DDBug介绍的是如何用代码实现显示&#8221;最新评论&#8221;。或许你会说wordpress本身就已经自带了这个小工具了啊？你为什么还要用代码实现呢？这不是没事找事做吗？</p>
<p>恩，你说对了，我就是没事找事做。那个自带的“最近评论”小工具我正在使用，但是并不是我想要的效果。我想要的效果就是大家最常见的那种可以看到评论者说的内容，而不是自带的那种“某某某在某篇文章上的评论”。</p>
<p><span id="more-177"></span></p>
<h3>实现方法</h3>
<p>以显示最近的10条评论为例，以下是实现代码</p>
<pre>&lt;h2&gt;最新评论&lt;/h2&gt;
  &lt;ul&gt;
  &lt;?php
   $comments = get_comments('number=10');
   foreach($comments as $comment) {
    echo '&lt;li&gt;&lt;a href="'.get_comment_link().'" title="在 '.get_the_title($comment-&gt;comment_post_ID).' 上的评论"&gt;'.get_comment_author().' : '.$comment-&gt;comment_content.'&lt;/a&gt;&lt;/li&gt;';
   }
  ?&gt;
  &lt;/ul&gt;</pre>
<p>当你点击评论的时候，会自动定位到该评论所在位置。你可以把以上代码写入sidebar.php的开始之处进行测试。</p>
<h3>相关函数说明</h3>
<p>这里主要用到了一个get_comments()函数，通过传递参数&#8217;number=10&#8242;来获取最新的10条评论列表，该列表以数组的形式保存在$comments变量中。你可以通过更改number=10的数字来决定显示的评论个数，比如number=15就显示最新的15条评论。</p>
<p>然后通过一个循环对$comments数据进行遍历，并把每一个评论对象保存在变量$comment中，这样我们就可以调用comment-template.php中的函数，像本例中用到的get_comment_link和get_comment_author，分别获取评论的链接地址和评论者名称。</p>
<h3>题外话</h3>
<p>本来我是想制作一个小工具提供出来的，但是想想这个小工具确实也太“小”了，就没有制作。准备以后把相关的功能都集中到一个插件中制作。</p>
<p>接下来一段时间的安排：</p>
<p>话说也快要过年了，春节的时候我肯定是要回老家的，中间会有一段时间不能更新网站，也没有时间去研究wordpress了。因此我打算年前这一段时间主要精力还是放在主题的制作和优化上。年后制作一个经过优化的插件，包括本文提到的“最近评论”，以及之前介绍过的“随机文章”、“相关文章”，还有以后的“浏览最多的文章”、“评论最多的文章”。至于优化到什么效果，大家就拭目以待吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/177/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>自制随机文章插件升级到1.1</title>
		<link>http://domety.com/archives/152/</link>
		<comments>http://domety.com/archives/152/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 12:32:46 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[下载]]></category>
		<category><![CDATA[小工具]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://domety.com/?p=152</guid>
		<description><![CDATA[经过几天的试用，发现上次发布的随机文章小工具插件还有一些问题，特此发布升级版本
更新说明：

增加显示相关文章功能
修复了在文章中调用显示随机文章函数时，评论显示不对应的问题
更改了调用函数名，防止和其它插件冲突的问题


安装方法：
如果你之前使用了1.0版本，请先停用并删除之前的插件。然后把下载的压缩包里的dm-random-posts文件复制到wp-content\plugins\文件夹下。最后在后台管理面板的插件列表中启用&#8221;随机文章 by DOMETY&#8221;插件。
注意：
显示随机文章由原来的the_rand_posts改为dm_the_rand_posts
新增的显示相关文章的函数为dm_the_related_posts,调用方法如下：
一般是在single.php文件中，加入以下代码
&#60;?php if(function_exists('dm_the_related_posts')) {dm_the_related_posts();} ?&#62;
该方法默认显示10篇相关文章，如果想更改显示文章的数量，比如显示5篇，可以指定showposts=5，如
&#60;?php if(function_exists('dm_the_related_posts')) {dm_the_related_posts('showposts=5');} ?&#62;
 
下载随机文章V1.1:      Xun6下载        趣盘下载
]]></description>
			<content:encoded><![CDATA[<p>经过几天的试用，发现上次发布的随机文章小工具插件还有一些问题，特此发布升级版本</p>
<p>更新说明：</p>
<ul>
<li>增加显示相关文章功能</li>
<li>修复了在文章中调用显示随机文章函数时，评论显示不对应的问题</li>
<li>更改了调用函数名，防止和其它插件冲突的问题</li>
</ul>
<p><span id="more-152"></span></p>
<p>安装方法：</p>
<p>如果你之前使用了1.0版本，请先停用并删除之前的插件。然后把下载的压缩包里的dm-random-posts文件复制到wp-content\plugins\文件夹下。最后在后台管理面板的插件列表中启用&#8221;随机文章 by DOMETY&#8221;插件。</p>
<p>注意：</p>
<p>显示随机文章由原来的the_rand_posts改为dm_the_rand_posts</p>
<p>新增的显示相关文章的函数为dm_the_related_posts,调用方法如下：</p>
<p>一般是在single.php文件中，加入以下代码</p>
<pre>&lt;?php if(function_exists('dm_the_related_posts')) {dm_the_related_posts();} ?&gt;</pre>
<p>该方法默认显示10篇相关文章，如果想更改显示文章的数量，比如显示5篇，可以指定showposts=5，如</p>
<pre>&lt;?php if(function_exists('dm_the_related_posts')) {dm_the_related_posts('showposts=5');} ?&gt;</pre>
<p> </p>
<p>下载随机文章V1.1:      <a href="http://xun6.com/file/f58a09a25/dm-random-posts.rar.html" target="_blank">Xun6下载</a>        <a href="http://domety.qupan.com/5134394.html" target="_blank">趣盘下载</a></p>
]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/152/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>用wordpress 2.8 widget API 制作侧边栏小工具</title>
		<link>http://domety.com/archives/143/</link>
		<comments>http://domety.com/archives/143/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 08:13:40 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[小工具]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://domety.com/?p=143</guid>
		<description><![CDATA[
wordpress自带了一些小工具，可以让你自由的拖动到侧边栏，并支持自由排序。但毕竟自带的小工具不多，而且功能有限，那么我们能不能添加我们自己的小工具呢？当然可以。

自从wordpress升级到2.8之后，提供了一个WP_Widget类，我们只需要扩展WP_Widget类，就可以自定义我们自己的小工具(widget)。如果你想深入了解该类，请查看wp-includes\widgets.php。
前几天我制作了一个在侧边栏显示随机文章的小工具，今天我就以此为例来详细的解说一下小工具的制作过程。如果你有一定的html和php知识，将很容易理解，如果没有，直接套用就行了。
新建一个php文件，文件名你可以根据自己的需要自己定义，我们在这里就使用random-posts.php。编辑该文件，输入&#60;?php   ?&#62;。接下来我们所有的代码都是添加在&#60;?php和?&#62;之间。
添加插件信息
在进入正题之前，我们先对插件作一个简单的描述。按照wordpress的要求，在文件的开始处添加下面这样的注释
&#60;?php
/*
 * Plugin Name: 随机文章 小工具
 * Version: 1.0
 * Plugin URI: http://domety.com/archives/141
 * Description: 这是一个显示随机文章的小工具(widget)，可以设置随机文章的数量，指定文章分类目录。
 * Author: DDBug
 * Author URI: http://domety.com/
 */
其中的Plugin Name(插件名称)、Version(版本号)、Plugin URI(插件地址)、Description(简介)、Author(作者)、Author URI(作者主页) 是固定不变的，你可以修改后面的内容。这些内容将显示在插件列表中，如下图所示

 
自定义小工具类
接下来开始制作我们的小工具，由定义一个WP_Widget的扩展类开始。类名由我们自己定义，这里我用类名是RandomPostsWidget
class RandomPostsWidget extends WP_Widget
{
     /*
     ** 构造函数
     ** 声明一个数组$widget_ops，用来保存类名和描述，以便在控制面板正确显示工具信息
     ** $control_ops 是可选参数，用来定义小工具在控制面板显示的宽度和高度
     ** 最后是关键的一步，调用WP_Widget来初始化我们的小工具
     */
     function RandomPostsWidget(){
     $widget_ops = array('classname'=&#62;'widget_random_posts','description'=&#62;'随机显示你博客中的文章');
     $control_ops = array('width'=&#62;250,'height'=&#62;300);
     $this-&#62;WP_Widget(false,'随机文章',$widget_ops,$control_ops);
     }

    ...... 省略了其它函数，将在下面说明

}
在我们的构造函数RandomPostsWidget()中定义了两个数组变量$widget_ops和$control_pos，然后传递给$this-&#62;WP_Widget()进行初始化。
WP_Widget的第一个参数是$id_base,我们一般设置成false即可
第二个参数指定小工具显示的名称，第三个参数指定类名和小工具的描述，这两个参数结合在一起的效果如下

第四个参数定义小工具的宽度和高度，一般可以不用定义。它影响的效果是当你把小工具拖到侧边栏时的宽度和高度。
一般的用法是传递前面三个参数就可以了。
三个重要函数
接下来是定义类的另外三个重要函数form、update、widget。
form函数一般是用来显示小工具的选项设置表单，表单的内容根据需要自己定义。这个随机文章小工具可以让用户自定义4个内容：
        模块标题，默认为“随机文章”
       显示文章数量，默认为10篇
      分类目录ID，默认为0,即显示所有分类下的文章
      [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="可用小工具" src="http://i623.domety.com/albums/tt312/baolai5/200911/widget_000.png" alt="" width="480" height="195" /></p>
<p>wordpress自带了一些小工具，可以让你自由的拖动到侧边栏，并支持自由排序。但毕竟自带的小工具不多，而且功能有限，那么我们能不能添加我们自己的小工具呢？当然可以。</p>
<p><span id="more-143"></span></p>
<p>自从wordpress升级到2.8之后，提供了一个WP_Widget类，我们只需要扩展WP_Widget类，就可以自定义我们自己的小工具(widget)。如果你想深入了解该类，请查看wp-includes\widgets.php。</p>
<p>前几天我制作了一个在侧边栏显示随机文章的小工具，今天我就以此为例来详细的解说一下小工具的制作过程。如果你有一定的html和php知识，将很容易理解，如果没有，直接套用就行了。</p>
<p>新建一个php文件，文件名你可以根据自己的需要自己定义，我们在这里就使用random-posts.php。编辑该文件，输入&lt;?php   ?&gt;。接下来我们所有的代码都是添加在&lt;?php和?&gt;之间。</p>
<h3>添加插件信息</h3>
<p>在进入正题之前，我们先对插件作一个简单的描述。按照wordpress的要求，在文件的开始处添加下面这样的注释</p>
<pre>&lt;?php
/*
 * Plugin Name: 随机文章 小工具
 * Version: 1.0
 * Plugin URI: <a href="http://domety.com/archives/141">http://domety.com/archives/141</a>
 * Description: 这是一个显示随机文章的小工具(widget)，可以设置随机文章的数量，指定文章分类目录。
 * Author: DDBug
 * Author URI: <a href="http://domety.com/">http://domety.com/</a>
 */</pre>
<p>其中的Plugin Name(插件名称)、Version(版本号)、Plugin URI(插件地址)、Description(简介)、Author(作者)、Author URI(作者主页) 是固定不变的，你可以修改后面的内容。这些内容将显示在插件列表中，如下图所示</p>
<p><img class="alignnone" title="插件信息" src="http://i623.domety.com/albums/tt312/baolai5/200911/randomPosts_000.png" alt="" width="480" height="64" /></p>
<p> </p>
<h3>自定义小工具类</h3>
<p>接下来开始制作我们的小工具，由定义一个WP_Widget的扩展类开始。类名由我们自己定义，这里我用类名是RandomPostsWidget</p>
<pre>class RandomPostsWidget extends WP_Widget
{
     /*
     ** 构造函数
     ** 声明一个数组$widget_ops，用来保存类名和描述，以便在控制面板正确显示工具信息
     ** $control_ops 是可选参数，用来定义小工具在控制面板显示的宽度和高度
     ** 最后是关键的一步，调用WP_Widget来初始化我们的小工具
     */
     function RandomPostsWidget(){
     $widget_ops = array('classname'=&gt;'widget_random_posts','description'=&gt;'随机显示你博客中的文章');
     $control_ops = array('width'=&gt;250,'height'=&gt;300);
     $this-&gt;WP_Widget(false,'随机文章',$widget_ops,$control_ops);
     }

    ...... 省略了其它函数，将在下面说明

}</pre>
<p>在我们的构造函数RandomPostsWidget()中定义了两个数组变量$widget_ops和$control_pos，然后传递给$this-&gt;WP_Widget()进行初始化。</p>
<p>WP_Widget的第一个参数是$id_base,我们一般设置成false即可</p>
<p>第二个参数指定小工具显示的名称，第三个参数指定类名和小工具的描述，这两个参数结合在一起的效果如下</p>
<p><img class="alignnone" title="显示随机文章" src="http://i623.domety.com/albums/tt312/baolai5/200911/randomPosts_002.png" alt="" width="254" height="62" /></p>
<p>第四个参数定义小工具的宽度和高度，一般可以不用定义。它影响的效果是当你把小工具拖到侧边栏时的宽度和高度。</p>
<p>一般的用法是传递前面三个参数就可以了。</p>
<h3>三个重要函数</h3>
<p>接下来是定义类的另外三个重要函数form、update、widget。</p>
<p><strong>form</strong>函数一般是用来显示小工具的选项设置表单，表单的内容根据需要自己定义。这个随机文章小工具可以让用户自定义4个内容：<br />
        模块标题，默认为“随机文章”<br />
       显示文章数量，默认为10篇<br />
      分类目录ID，默认为0,即显示所有分类下的文章<br />
      CSS样式class名，默认为randomPosts</p>
<p>先看一下显示效果</p>
<p><img class="alignnone" title="小工具选项" src="http://i623.domety.com/albums/tt312/baolai5/200911/randomPosts_003.png" alt="" width="251" height="299" /></p>
<p>再看一下函数定义代码</p>
<pre>function form($instance){
  $instance = wp_parse_args((array)$instance,array('title'=&gt;'随机文章','showPosts'=&gt;10,'cat'=&gt;0,'class'=&gt;'randomPosts'));
  $title = htmlspecialchars($instance['title']);
  $showPosts = htmlspecialchars($instance['showPosts']);
  $cat = htmlspecialchars($instance['cat']);
  $class = htmlspecialchars($instance['class']);
  echo '&lt;p style="text-align:left;"&gt;&lt;label for="'.$this-&gt;get_field_name('title').'"&gt;标题:&lt;input style="width:200px;" id="'.$this-&gt;get_field_id('title').'" name="'.$this-&gt;get_field_name('title').'" type="text" value="'.$title.'" /&gt;&lt;/label&gt;&lt;/p&gt;';
  echo '&lt;p style="text-align:left;"&gt;&lt;label for="'.$this-&gt;get_field_name('showPosts').'"&gt;文章数量:&lt;input style="width:200px;" id="'.$this-&gt;get_field_id('showPosts').'" name="'.$this-&gt;get_field_name('showPosts').'" type="text" value="'.$showPosts.'" /&gt;&lt;/label&gt;&lt;/p&gt;';
  echo '&lt;p style="text-align:left;"&gt;&lt;label for="'.$this-&gt;get_field_name('cat').'"&gt;分类ID:&lt;input style="width:200px" id="'.$this-&gt;get_field_id('cat').'" name="'.$this-&gt;get_field_name('cat').'" type="text" value="'.$cat.'" /&gt;&lt;/label&gt;&lt;/p&gt;';
  echo '&lt;p style="text-align:left;"&gt;&lt;label for="'.$this-&gt;get_field_name('class').'"&gt;class:&lt;input style="width:200px" id="'.$this-&gt;get_field_id('class').'" name="'.$this-&gt;get_field_name('class').'" type="text" value="'.$class.'" /&gt;&lt;/label&gt;&lt;/p&gt;';
 }</pre>
<p>注意代码中我们用到的4个$instance数组的key：title、showPosts、cat 和 class。这些key名可以自己定义，但在前后的使用过程中要保持一致。另外wordpress提供了两函数get_field_name 和get_field_id来保证表单内每一项设置都保存到相应的数组Key中。</p>
<p><strong>update</strong>函数用于更新保存的设置。其实这个函数可以不定义，不过为了提高安全性，我们一般用此函数进行字符串的过滤</p>
<pre>function update($new_instance,$old_instance){
  $instance = $old_instance;
  $instance['title'] = strip_tags(stripslashes($new_instance['title']));
  $instance['showPosts'] = strip_tags(stripslashes($new_instance['showPosts']));
  $instance['cat'] = strip_tags(stripslashes($new_instance['cat']));
  $instance['class'] = strip_tags(stripslashes($new_instance['class']));

  return $instance;
 }</pre>
<p>如果不定义此函数，默认返回的将是$new_instance,即在小工具选项中所做的更改。你应该注意到，我们使用了strip_tags和stripslashes这两个php函数来过滤掉用户输入的不合法的字符。</p>
<p><strong>widget</strong>函数定义小工具在页面中的显示方式</p>
<pre>function widget($args,$instance){
  extract($args);
  $title = apply_filters('widget_title',empty($instance['title']) ? '&amp;nbsp;' : $instance['title']);
  $showPosts = empty($instance['showPosts']) ? 10 : $instance['showPosts'];
  $cat = empty($instance['cat']) ? 0 : $instance['cat'];
  $class = empty($instance['class']) ? 'randomPosts' : $instance['class'];
  
  echo $before_widget;
  echo $before_title . $title . $after_title;
  the_rand_posts("showPosts=$showPosts&amp;cat='$cat'&amp;class='$class'");
  echo $after_widget;
 }</pre>
<p>首先使用了extract函数把数组中的keys转换成变量，比如下面用到的$before_widget、$before_title、$after_title、$after_widget，这些变量不同的主题模块有不同的值，我将在定义侧边栏中进行介绍。然后从$instance中取出保存的各个key的值，再通过调用我自定义的the_rand_posts函数来显示随机文章的标题列表。效果如下</p>
<p><img class="alignnone" title="随机文章" src="http://i623.domety.com/albums/tt312/baolai5/200911/widget_001.png" alt="" width="291" height="337" /></p>
<p>附the_rand_posts函数定义代码</p>
<pre>function the_rand_posts($args = ''){
 $default = array('showPosts'=&gt;10,
  'cat'=&gt;'0',
  'class'=&gt;'randomPosts');
 $r = wp_parse_args($args,$default);
 extract($r);
 $rand_query = new WP_Query("cat=$cat&amp;showposts=$showPosts&amp;orderby=rand");
 if($rand_query-&gt;have_posts()){
  echo '&lt;ul&gt;';
  while($rand_query-&gt;have_posts()){
   $rand_query-&gt;the_post();
   echo '&lt;li&gt;&lt;a href="'.get_permalink().'"&gt;'.get_the_title().'&lt;/a&gt;&lt;/li&gt;';
  }/*End while($rand_query-&gt;have_posts())*/
  echo '&lt;/ul&gt;';
 }/*End if($rand_query-&gt;have_posts())*/
}</pre>
<p>到这里，我们的小工具类RandomPostsWidget已经定义完成了。接下来再完成最后一步，注册该小工具类，就完成了随机文章小工具的制作。</p>
<h3>注册小工具</h3>
<p>这是我们制作小工具的最后一步，把上面我们定义的小工具类RandomPostsWidget注册。以下这些代码要添加到上面的类定义之外</p>
<pre>} // RandomPostsWidget 类定义结束

/*
** 注册小工具
*/
function RandomPostsInit(){
 register_widget('RandomPostsWidget');
}

add_action('widgets_init','RandomPostsInit');</pre>
<p>我们定义了一个RandomPostsInit函数，调用wordpress的register_widget来注册我们的类RandomPostsWidget。最后通过add_action把我们定义的函数RandomPostsInit加入到wordpress的widgets_init函数中。这样就完成了我们的小工具注册工作，也最终完成了小工具的制作流程。</p>
<p>有关该小工具的源代码下载以及安装和使用方法，可以参看<a href="http://domety.com/archives/141">http://domety.com/archives/141</a></p>
]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/143/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>小工具“随机文章”插件制作完成</title>
		<link>http://domety.com/archives/141/</link>
		<comments>http://domety.com/archives/141/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 13:52:50 +0000</pubDate>
		<dc:creator>DDBug</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[小工具]]></category>
		<category><![CDATA[插件]]></category>

		<guid isPermaLink="false">http://domety.com/?p=141</guid>
		<description><![CDATA[上一篇文章DDBug向大家介绍了添加“随机文章”功能的原理以及实现方法。为了方便大家以及自己今后的使用，特制作此 随机文章 插件，方便在后台控制板管理。
目前的版本为1.0,主要有以下功能：

自定义模块标题
自定义随机显示文章的数量
可以只显示指定分类ID下的文章
内嵌CSS样式的class，可以自定义class名
提供显示随机文章的函数，可以任何地方自由调用


这些功能只是为了满足我目前的需求而实现的，可能还不够完善。如果大家有什么好的建议，可以随时提出来，我会保持更新，方便自己，方便大家。
使用方法
有两种方法可以使用，一是以插件的形式启用，一是手动加入到主题文件夹中。
1、以插件形式启用
下载本插件后，复制文件夹Random-Posts-Widget到wp-content\plugins下，登入后台控制面板，在已安装插件列表中会看到“随机文章 小工具”

启用此插件即可
2、添加到主题文件夹
如果你不想使用插件，你也可以把下载的文件夹Random-Posts-Widget复制到你的当前主题文件夹目录下，然后找到functions.php这个文件并用文本编辑器打开，在&#60;?php 之后加入
require_once('Random-Posts-Widget/random-posts.php');
如下图所示：

 
你可以使用以上两种方法中的任何一种，但不能两者同时使用。
进入后台控制面板， 外观 —&#62; 小工具 ，你会发现在可用小工具下多了一个“随机文章”

然后你就可以像使用其它小工具一样来使用“随机文章”模块。
当你把它拖入到右边侧边栏中的时候，会显示一些选项

你可以设置模块的标题、显示文章的数量、分类ID以及CSS样式的class。
比如你想只显示分类ID为1、2、3下的文章，只需要在分类ID选项中填写1,2,3即可，注意中间使用“，”号隔开各个分类ID。
如果你想让你的“随机文章”显示的样式与其它的模块有所区别，只需要在你的CSS中定义一个class，然后再class选项中输入你定义的class名即可。
在其它地方显示“随机文章”
该插件提供了一个函数 the_rand_posts(),你只需要在任何你想显示随机文章的地方加入以下代码即可
&#60;?php if(function_exists('the_rand_posts')) { the_rand_posts(); } ?&#62;
the_rand_posts函数接受3个参数：

showPosts —— 指定显示文章的数量,默认为显示10篇文章
cat —— 指定分类目录ID，默认为0，即所有分类
class —— 用于定义CSS样式的类名，默认为randomPosts

比如我想在每篇文章结束的时候显示5篇随机文章，在当前主题模板中找到并编辑single.php，找到文章显示结束的位置，然后插入以下代码
&#60;?php if(function_exists('the_rand_posts')) { the_rand_posts('showPosts=5'); } ?&#62;
又如我们把显示的文章限制在分类ID为1、2、3下，那么可以这样调用
&#60;?php if(function_exists('the_rand_posts')) { the_rand_posts('showPosts=5&#38;cat=1,2,3'); } ?&#62;
 
OK，今天就说到这里，相信你也应该能正确使用该插件了。如果你有任何疑问以及建议，可以在这里留言，同时希望该插件对你有用。
 
下载 随机文章插件：    Xun6下载        趣盘下载
]]></description>
			<content:encoded><![CDATA[<p>上一篇文章DDBug向大家介绍了添加“随机文章”功能的原理以及实现方法。为了方便大家以及自己今后的使用，特制作此 随机文章 插件，方便在后台控制板管理。</p>
<p>目前的版本为1.0,主要有以下功能：</p>
<ul>
<li>自定义模块标题</li>
<li>自定义随机显示文章的数量</li>
<li>可以只显示指定分类ID下的文章</li>
<li>内嵌CSS样式的class，可以自定义class名</li>
<li>提供显示随机文章的函数，可以任何地方自由调用</li>
</ul>
<p><span id="more-141"></span></p>
<p>这些功能只是为了满足我目前的需求而实现的，可能还不够完善。如果大家有什么好的建议，可以随时提出来，我会保持更新，方便自己，方便大家。</p>
<h3>使用方法</h3>
<p>有两种方法可以使用，一是以插件的形式启用，一是手动加入到主题文件夹中。</p>
<p><strong>1、以插件形式启用</strong></p>
<p>下载本插件后，复制文件夹Random-Posts-Widget到wp-content\plugins下，登入后台控制面板，在已安装插件列表中会看到“随机文章 小工具”</p>
<p><img class="alignnone" title="随机文章插件" src="http://i623.domety.com/albums/tt312/baolai5/200911/randomPosts_000.png" alt="" width="480" height="64" /></p>
<p>启用此插件即可</p>
<p><strong>2、添加到主题文件夹</strong></p>
<p>如果你不想使用插件，你也可以把下载的文件夹Random-Posts-Widget复制到你的当前主题文件夹目录下，然后找到functions.php这个文件并用文本编辑器打开，在&lt;?php 之后加入</p>
<pre>require_once('Random-Posts-Widget/random-posts.php');</pre>
<p>如下图所示：</p>
<p><img class="alignnone" title="functions代码" src="http://i623.domety.com/albums/tt312/baolai5/200911/randomPosts_001.png" alt="" width="405" height="31" /></p>
<p> </p>
<p>你可以使用以上两种方法中的任何一种，但不能两者同时使用。</p>
<p>进入后台控制面板， 外观 —&gt; 小工具 ，你会发现在可用小工具下多了一个“随机文章”</p>
<p><img class="alignnone" title="小工具面板" src="http://i623.domety.com/albums/tt312/baolai5/200911/randomPosts_002.png" alt="" width="254" height="62" /></p>
<p>然后你就可以像使用其它小工具一样来使用“随机文章”模块。</p>
<p>当你把它拖入到右边侧边栏中的时候，会显示一些选项</p>
<p><img class="alignnone" title="随机文章选项" src="http://i623.domety.com/albums/tt312/baolai5/200911/randomPosts_003.png" alt="" width="251" height="299" /></p>
<p>你可以设置模块的标题、显示文章的数量、分类ID以及CSS样式的class。</p>
<p>比如你想只显示分类ID为1、2、3下的文章，只需要在分类ID选项中填写1,2,3即可，注意中间使用“，”号隔开各个分类ID。</p>
<p>如果你想让你的“随机文章”显示的样式与其它的模块有所区别，只需要在你的CSS中定义一个class，然后再class选项中输入你定义的class名即可。</p>
<h3>在其它地方显示“随机文章”</h3>
<p>该插件提供了一个函数 the_rand_posts(),你只需要在任何你想显示随机文章的地方加入以下代码即可</p>
<pre>&lt;?php if(function_exists('the_rand_posts')) { the_rand_posts(); } ?&gt;</pre>
<p>the_rand_posts函数接受3个参数：</p>
<ul>
<li>showPosts —— 指定显示文章的数量,默认为显示10篇文章</li>
<li>cat —— 指定分类目录ID，默认为0，即所有分类</li>
<li>class —— 用于定义CSS样式的类名，默认为randomPosts</li>
</ul>
<p>比如我想在每篇文章结束的时候显示5篇随机文章，在当前主题模板中找到并编辑single.php，找到文章显示结束的位置，然后插入以下代码</p>
<pre>&lt;?php if(function_exists('the_rand_posts')) { the_rand_posts('showPosts=5'); } ?&gt;</pre>
<p>又如我们把显示的文章限制在分类ID为1、2、3下，那么可以这样调用</p>
<pre>&lt;?php if(function_exists('the_rand_posts')) { the_rand_posts('showPosts=5&amp;cat=1,2,3'); } ?&gt;</pre>
<p> </p>
<p>OK，今天就说到这里，相信你也应该能正确使用该插件了。如果你有任何疑问以及建议，可以在这里留言，同时希望该插件对你有用。</p>
<p> </p>
<p>下载 随机文章插件：    <a href="http://xun6.com/file/7ca9c8912/Random-Posts-Widget.domety.com.rar.html" target="_blank">Xun6下载</a>        <a href="http://domety.qupan.com/5099395.html" target="_blank">趣盘下载</a></p>
]]></content:encoded>
			<wfw:commentRss>http://domety.com/archives/141/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

