登录 注册 VIP特权 提交收录
Search Engine Optimization,不撸代码不修BUG

域名出售:ioee.cn(爱),联系QQ:49613651
应广大客户要求,本站价格上调,别问为什么,没理由~!

主页 » 教程 » 正文

Typecho最新热门热评文章调用api

因为群友花花弄了个高仿掘金主题,没有实现热门与热评文章加载功能,特此为其分享点代码,先是简单弄了个json版本,后来根据需求又弄了个html的版本

使用

用法就是将下面的函数放到模板函数文件里,如果存在同名函数请自行合并。

JSON版

function themeInit($archive)
{
$db = Typecho_Db::get();//数据库操作调用
if($archive->request->api){
$pagesize=8;//每页文章数量
$p=1;if($archive->request->page){$p=$archive->request->page;}
$select=$db->select('cid')->from('table.contents')
            ->where('table.contents.status = ?','publish')
            ->where('table.contents.password IS NULL')
            ->where('table.contents.type = ?', 'post');
if($archive->request->api=='new'){           
$select=$select->order('table.contents.created', Typecho_Db::SORT_DESC);
}elseif($archive->request->api=='hot'){
$select=$select->order('table.contents.commentsNum', Typecho_Db::SORT_DESC);
}elseif($archive->request->api=='views'){
$select=$select->order('table.contents.views', Typecho_Db::SORT_DESC);
}  
$select=$db->fetchAll($select->page($p,$pagesize));//分页
$lon=count($select);
for($ii=0;$ii<$lon;$ii++){
$archive->widget('Widget_Archive@indexxiu', 'pageSize=1&type=post', 'cid='.$select[$ii]['cid'])->to($ji);
 $b[] = array( 
                "cid" => $ji->title,
                "title" => $ji->permalink,
                "description" => $ji->description,
            );   
}  
$archive->response->throwJson(array(
            'status' => '200',
            'data' => $b
        ));
}




html版本

function themeInit($archive)
{
$db = Typecho_Db::get();
if($archive->request->api){
$pagesize=8;//每页文章数量
$p=1;if($archive->request->page){$p=$archive->request->page;}
$nextpage=$p+1;
$select=$db->select('cid')->from('table.contents')
            ->where('table.contents.status = ?','publish')
            ->where('table.contents.password IS NULL')
            ->where('table.contents.type = ?', 'post');
if($archive->request->api=='new'){           
$select=$select->order('table.contents.created', Typecho_Db::SORT_DESC);
}elseif($archive->request->api=='hot'){
$select=$select->order('table.contents.commentsNum', Typecho_Db::SORT_DESC);
}elseif($archive->request->api=='views'){
$select=$select->order('table.contents.views', Typecho_Db::SORT_DESC);
}  
$select=$db->fetchAll($select->page($p,$pagesize));//分页

$lon=count($select);
for($i=0;$i<$lon;$i++){
$archive->widget('Widget_Archive@indexxiu'.$i, 'pageSize=1&type=post', 'cid='.$select[$i]['cid'])->to($ji);
?>
<a class="title" href="<?php $ji->permalink() ?>" title="<?php $ji->title() ?>">
          <h2><?php $ji->title() ?></h2>
        </a>
<?php
if($i==$lon-1){
echo '<a class="next" href="'.Helper::options()->siteUrl.'?api='.$archive->request->api.'&page='.$nextpage.'">下页</a>';    
}
}  
exit;
}

调用方法

最新文章:https://你的域名/?api=new&page=1
热评文章:https://你的域名/?api=hot&page=1
热门文章:https://你的域名/?api=views&page=1
其中page为当前页码


您的大名:
万水千山总是情,给个打赏行不行。 打赏

标签: 热门热评文章
! 如链接失效请在下方留言。本站所发布的全部内容源于互联网搬运,仅限于小范围内传播学习和文献参考,请在下载后24小时内删除,如果有侵权之处请第一时间联系我们删除。敬请谅解! E-mail:49613651@qq.com
原创文章,作者:一宇A1xt,如若转载,请注明出处:http://www.a1xt.com/archives/702.html

相关推荐


猜你喜欢

Tepass插件的使用文档

因为群友花花弄了个高仿掘金主题,没有实现热门与热评文章加载功能,特此为其分享点代码,先是简单弄了个json版本,后来根据需求又弄了个h...


上一篇
下一篇

发表评论