Typecho中调用相关文章

在博客文章页面中,如果没有展示“相关文章”,那么对PV来说会造成不少的损失。Wordpress中,相关文章一般有插件提供支持,相关的方式包括:Tag相关、作者相关、分类相关等。

而Typecho中,系统提供了调用相关文章的原生API,但只有两种相关方式:标签(tag)相关和作者相关。
获取当前文章的相关文章,使用的Widget是`Widget_Contents_Related`。

$obj = $this->widget(‘Widget_Contents_Related’);
if($obj->have()){
while($obj->next()){
$obj->title();
… …
}
}else{
echo ‘无相关文章’;
}
>以上例子,$obj的可用字段,可参考[《Typecho模板中的archive页面》][1]一文。

### Widget_Contents_Related可用参数
* $limit 获取相关文章的数目。
`$this->widget(‘Widget_Contents_Related’,’limit=10′)`则获取10篇相关文章
* $type 默认值为 NULL,表示文章的相关方式,只接受 author。当 $type 为 author 时,根据用户显示相关文章;为其他值时,根据标签显示相关文章。

### Widget_Contents_Related常见用法
**常规用法**
`widget()`方法进行组件初始化,然后使用next()进行迭代。

$this->widget(‘Widget_Contents_Related’)->to($recent);
while($recent->next()):
……
endwhile;

**快捷用法**
通过`parse()`方法,一行代码完成文章列表输出:

$this->widget(‘Widget_Contents_Related’)->parse(‘{title}‘);

>至于有哪些字段可用,可参阅《Typecho模板中的archive页面》一文

**另外,还可以在post页面,即从当前文章直接调用**

$this->related(5)->to($relatedPosts);
$relatedPosts->parse(‘{title}‘);
>`related($limit,$type=NULL)`函数接受两个参数,第一个表示数目,第二个指定关联类型,默认根据标签关联,指定`author`时表示根绝作者关联。

[1]: http://www.typechodev.com/index.php/archives/46/

上一篇 2015-01-31 上午6:59
下一篇 2015-01-31 上午7:06