排行榜 统计
  • 建站日期:2021-05-20
  • 文章总数:144 篇
  • 评论总数:693 条
  • 分类总数:4 个
  • 最后更新:9月4日

typecho常用文章数据调用方法,汇总整理

本文阅读 1 分钟
首页 原创教学 正文
本文最后更新于2021年12月05日,已超过300天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

blockchain

这篇文章做个汇总,以后开发模板直接来复制。

调用热评文章:

class Widget_Contents_Post_Comments extends Widget_Abstract_Contents
{
public function execute()
{
$this->parameter->setDefault(array('pageSize' => $this->options->postsListSize));
->where('table.contents.status = ?', 'publish')
->where('table.contents.created < ?', $this->options->time)
->where('table.contents.type = ?', 'post')
->order('commentsNum', Typecho_Db::SORT_DESC)
->limit($this->parameter->pageSize), array($this, 'push'));
}
}

前台模板写法:

<?php $this->widget('Widget_Contents_Post_Comments','pageSize=10')->to($Comments);while($Comments->next()): ?>
循环内代码
<?php endwhile; ?>

调用热门文章(注意先实现阅读量功能):

class Widget_Post_hot 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()
{
$select  = $this->select()->from('table.contents')
->where("table.contents.password IS NULL OR table.contents.password = ''")
->where('table.contents.status = ?','publish')
->where('table.contents.created <= ?', time())
->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_Post_hot@hot', 'pageSize=6')->to($hot);while($hot->next()): ?>
循环内代码
<?php endwhile; ?>

调用随机文章:

class Widget_Contents_Post_Rand extends Widget_Abstract_Contents
{
public function execute()
{
$this->parameter->setDefault(array('pageSize' => $this->options->postsListSize));
    $this->db->fetchAll($this->select()
    ->where('table.contents.status = ?', 'publish')
    ->where('table.contents.created < ?', $this->options->time)
    ->where('table.contents.type = ?', 'post')
    ->order('RAND()', Typecho_Db::SORT_DESC)
    ->limit($this->parameter->pageSize), array($this, 'push'));
}
}

前台模板写法:

<?php $this->widget('Widget_Contents_Post_Rand','pageSize=10')->to($Rand);while($Rand->next()): ?>
循环内代码
<?php endwhile; ?>

根据字数调用:

class Widget_Contents_Post_Size extends Widget_Abstract_Contents
{
public function execute()
{
$this->parameter->setDefault(array('pageSize' => $this->options->postsListSize));
    $this->db->fetchAll($this->select()
    ->where('table.contents.status = ?', 'publish')
    ->where('table.contents.created < ?', $this->options->time)
    ->where('table.contents.type = ?', 'post')
    ->order('LENGTH(text)', Typecho_Db::SORT_DESC)
    ->limit($this->parameter->pageSize), array($this, 'push'));
}
}

前台模板写法:

<?php $this->widget('Widget_Contents_Post_Size','pageSize=10')->to($Size);while($Size->next()): ?>
循环内代码
<?php endwhile; ?>

调用指定文章:

class Widget_Post_fanjubiao 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()
{
    $select  = $this->select()->from('table.contents')
->where("table.contents.password IS NULL OR table.contents.password = ''")
->where('table.contents.type = ?', 'post')
->limit($this->parameter->pageSize)
->order('table.contents.modified', Typecho_Db::SORT_DESC);

if ($this->parameter->fanjubiao) {
$fanju=explode(",",$this->parameter->fanjubiao);
$select->where('table.contents.cid in ?', $fanju);
}
 $this->db->fetchAll($select, array($this, 'push'));
}
}

前台模板写法:

<?php $week1="728,1197";
$this->widget('Widget_Post_fanjubiao@fanjubiao', 'fanjubiao='.$week1)-        >to($fanju);while($fanju->next()): ?>
循环内代码
<?php endwhile; ?>

调用相关文章(文章详情页面使用)

<?php $this->related(6)->to($relatedPosts); ?>
循环内代码
<?php endwhile; ?>

根据分类调用文章:

<?php $this->widget('Widget_Archive@index1', 'pageSize=5&type=category', 'mid=分类ID')->to($categoryPosts);while($categoryPosts->next()):?>
循环内代码
<?php endwhile;?>

根据标签调用:

<?php $this->widget('Widget_Archive@indexessence', 'pageSize=2&type=tag', 'slug=精华')->to($indexessence);while($indexessence->next()): ?> 
循环内代码
<?php endwhile; ?> 

以上就是整理出来的内容,如果以后折腾出新的,还会继续进行补充。

本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.xinr.vip/archives/51.html
Typecho缩略图利用TimThumb实现自动剪裁
« 上一篇 06-08
typecho获取当前作者的全部评论
下一篇 » 06-09
广告

发表评论

V注册会员 L评论等级
R3 条回复
  1. 嘟嘟VLv.2 说道:
    2021-12-10     Android /    Chrome

    东西太好啦

  2. wangfeilongVLv.2 说道:
    2021-08-19     Win 10 /    Chrome

    感谢楼主

  3. zhuweiVLv.1 说道:
    2021-08-14     Win 10 /    QQ浏览器

    感谢楼主+1

没有更多评论了

作者信息

广告

动态快讯

热门文章

最多点赞

16赞, 阅读:1.4k
15赞, 阅读:3k
13赞, 阅读:1.2k
12赞, 阅读:3.4k
广告

标签TAG

热评文章