原创Typecho

Typecho调用出同分类最热门文章并展示出来

本文阅读 2 分钟
首页 Typecho 正文

一般来说,个人博客可能很少考虑今天这个问题,那就是调用同分类下的热门文章,我们通常看到typecho的主题都是调用热门文章,这个热门文章是指所有分类的,那么对于一个网站是综合类型的,并且每个分类内容差异很大的话,这样的显示方式显然不够友好,从SEO角度来看,这样的内容相关性也会大打折扣,因此,我们需要在文章页面分类那里显示同分类下的最热门文章显示。
具体的实现代码参考如下:

class Widget_Hot_Post_By_Category extends Widget_Abstract_Contents
{
    public function __construct($request, $response, $params = NULL)
    {
        parent::__construct($request, $response, $params);
        $this->parameter->setDefault(array('pageSize' => $this->options->commentsListSize, 'parentId' => 0, 'ignoreAuthor' => false));
    }
    public function execute()
    {
    $adapterName = $this->db->getAdapterName();//兼容非MySQL数据库
  $select  = $this->select()->from('table.contents')
  ->join('table.relationships', 'table.contents.cid = table.relationships.cid');
  if($this->parameter->mid>0){
  $select->where('table.relationships.mid = ?', $this->parameter->mid);
  }
  $select->where('table.contents.cid <> ?', $this->parameter->cid)
  ->where("table.contents.password IS NULL OR table.contents.password = ''")
    ->where('table.contents.type = ?', 'post')
    ->limit($this->parameter->pageSize)
  ->order('table.contents.views', Typecho_Db::SORT_DESC);
    $this->db->fetchAll($select, array($this, 'push'));
    }
}

当我们的主题需要调用同分类热门文章的时候,只需要在主题模板处使用下面代码:

<?php $this->widget('Widget_Hot_Post_By_Category@hot', 'pageSize=6')->to($hot); ?>
<?php while($hot->next()): ?>
文章链接:<?php $hot->permalink() ?>
文章标题:<?php $hot->title(); ?>
 <?php endwhile; ?>

Typecho实现同分类下热门文章的查找并不难,主要就是使用数据库查询同分类下,浏览量最多的那篇文章就可以了。通过这一点我们也可以查询同分类下评论最多的文章等等,可以根据自己的想法去扩展实现更多功能。

原创文章,作者:努力的牛奋,如若转载,请注明出处:https://mokev.com/6.html
FFmpeg轻松制作随机文字移动效果教程
« 上一篇 03-14
Typecho获取上一篇和下一篇文章的封面
下一篇 » 03-14

热门文章

标签TAG

没有任何标签