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页面》一文。
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('<a href="{permalink}">{title}</a>');
至于有哪些字段可用,可参阅《Typecho模板中的archive页面》一文
另外,还可以在post页面,即从当前文章直接调用
$this->related(5)->to($relatedPosts);
$relatedPosts->parse('<a href="{permalink}">{title}</a>');
related($limit,$type=NULL)
函数接受两个参数,第一个表示数目,第二个指定关联类型,默认根据标签关联,指定author
时表示根绝作者关联。