下面的代码都是编写成函数,放在主题的 functions.php 文件中,在每个页面都能调用。
获取文章数量
下面是获取文章总数量的函数,不包含独立页面:
上面的函数可以获取文章数量,不包含草稿和未公开的文章。
Typecho 的文章和独立页面都存储在 Typecho 数据库的 typecho_contents 表中,使用 Typecho 提供的 API 查询时可以不需要加 typecho 前缀。
typecho_contents 表中有个 type 字段是用来存储内容类型的,post 是普通文章,page 是独立页面。status 字段是存储文章状态,publish 是公开的,draft 是草稿。
如果要获取独立页面数量可以把 where('type = ?', 'post') 换为 where('type = ?', 'page') ,如果要获取所有公开、未公开、和草稿文章数量可以直接把 where('status = ?', 'publish') 方法删除。
获取评论数量
下面是获取评论总数量的函数,只包含通过审核的评论:
Typecho 的评论存储在 typecho_comments 表中,status 字段存储评论的状态,approved 是通过审核的评论,waiting 是待审核的评论,spam 是标记为垃圾的评论。
如果要获取所有评论,不区分状态的话可以把 where('status = ?', 'approved') 方法删除。
获取分类数量
下面是获取分类数量的函数:
Typecho 的分类和标签都存储在 typecho_metas 表中,这个表中有一个 type 字段用来区分标签和分类,tag 是标签,category 是分类。
获取标签数量
下面是获取标签数量的函数
Typecho 的分类和标签都存储在一个表中,只需要把 where('type = ?', 'category') 换为 where('type = ?', 'tag') 就可以查询出标签数量。
获取总点赞数量
Typecho 是不包含点赞功能的,如果你开发了点赞功能,在文章表中加入了 agree 字段的话,可以使用下面的函数获取点赞总数:
获取评论数量排名前 5 的 5 篇文章
下面是获取评论数排名前 5 的 5 篇文章的函数,除了文章外也会获取评论数:
在 typecho_contents 文章表中有一个 commentsNum 字段就是用来存储评论数量的。
上面的 top5CommentPost 函数返回的数据如下:
获取各分类的文章数量
下面是获取分类文章数量的函数,可以用来生成统计图表:
分类文章数量也是存储在 typecho_metas 表中,count 字段就是分类或标签的文章数量。
下面是获取的数据:
文章来源于:https://www.veidc.com/23884.html


阿度
2年前 . 贵人 . LV.3
按照大佬的方法已使用获取全站点赞方法,赞一个。
寻梦xunm 作者博主
2年前 . 贵人 . LV.5
@阿度
前辈贡献出来的代码,使用起来确实方便。