幻蓝小站

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 12|回复: 0

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

[复制链接]

5317

主题

5318

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
15994
幻蓝 发表于 2022-11-21 12:55:42
用法就是将下面的函数放到模板函数文件里,如果存在同名函数请自行合并。

json版
  1. function themeInit($archive)
  2. {
  3. $db = Typecho_Db::get();//数据库操作调用
  4. if($archive->request->api){
  5. $pagesize=8;//每页文章数量
  6. $p=1;if($archive->request->page){$p=$archive->request->page;}
  7. $select=$db->select('cid')->from('table.contents')
  8.             ->where('table.contents.status = ?','publish')
  9.             ->where('table.contents.password IS NULL')
  10.             ->where('table.contents.type = ?', 'post');
  11. if($archive->request->api=='new'){           
  12. $select=$select->order('table.contents.created', Typecho_Db::SORT_DESC);
  13. }elseif($archive->request->api=='hot'){
  14. $select=$select->order('table.contents.commentsNum', Typecho_Db::SORT_DESC);
  15. }elseif($archive->request->api=='views'){
  16. $select=$select->order('table.contents.views', Typecho_Db::SORT_DESC);
  17. }  
  18. $select=$db->fetchAll($select->page($p,$pagesize));//分页
  19. $lon=count($select);
  20. for($ii=0;$ii<$lon;$ii++){
  21. $archive->widget('[email protected]', 'pageSize=1&type=post', 'cid='.$select[$ii]['cid'])->to($ji);
  22. $b[] = array(
  23.                 "cid" => $ji->title,
  24.                 "title" => $ji->permalink,
  25.                 "description" => $ji->description,
  26.             );   
  27. }  
  28. $archive->response->throwJson(array(
  29.             'status' => '200',
  30.             'data' => $b
  31.         ));
  32. }
  33. }
复制代码
html版
  1. function themeInit($archive)
  2. {
  3. $db = Typecho_Db::get();
  4. if($archive->request->api){
  5. $pagesize=8;//每页文章数量
  6. $p=1;if($archive->request->page){$p=$archive->request->page;}
  7. $nextpage=$p+1;
  8. $select=$db->select('cid')->from('table.contents')
  9.             ->where('table.contents.status = ?','publish')
  10.             ->where('table.contents.password IS NULL')
  11.             ->where('table.contents.type = ?', 'post');
  12. if($archive->request->api=='new'){           
  13. $select=$select->order('table.contents.created', Typecho_Db::SORT_DESC);
  14. }elseif($archive->request->api=='hot'){
  15. $select=$select->order('table.contents.commentsNum', Typecho_Db::SORT_DESC);
  16. }elseif($archive->request->api=='views'){
  17. $select=$select->order('table.contents.views', Typecho_Db::SORT_DESC);
  18. }  
  19. $select=$db->fetchAll($select->page($p,$pagesize));//分页

  20. $lon=count($select);
  21. for($i=0;$i<$lon;$i++){
  22. $archive->widget('[email protected]'.$i, 'pageSize=1&type=post', 'cid='.$select[$i]['cid'])->to($ji);
  23. ?>
  24. <a class="title" href="<?php $ji->permalink() ?>" title="<?php $ji->title() ?>">
  25.           <h2><?php $ji->title() ?></h2>
  26.         </a>
  27. <?php
  28. if($i==$lon-1){
  29. echo '<a class="next" href="'.Helper::options()->siteUrl.'?api='.$archive->request->api.'&page='.$nextpage.'">下页</a>';   
  30. }
  31. }  
  32. exit;
  33. }
  34. }
复制代码
调用方法
最新文章:https://你的域名/?api=new&page=1
热评文章:https://你的域名/?api=hot&page=1
热门文章:https://你的域名/?api=views&page=1
其中page为当前页码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|幻蓝小站 ( 黔ICP备18008076号-1 )|网站地图

GMT+8, 2022-11-30 08:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表