Typecho 主题技巧:构造数据库请求来获取数据

Typecho 主题技巧:构造数据库请求来获取数据

前言

  • 很多同学制作主题时会在网上搜索 “ Typecho 主题常用 function 代码 ”,但其实大部分写到 function.php 中的代码都是为了获取并展示 typecho 没有提供现成获取接口的数据。与其每次都去搜索、复制、粘贴,不如理解机制,根据自己的需要随时手搓代码
  • 本文的内容主要针对 typecho,至于 SQL,不会展开讲解,请自行学习

数据库结构

有两种方式可以了解 typecho 的数据结构

  • 推荐先看 Typecho 官方提供数据库设计文档

    官方文档地址:http://docs.typecho.org/database

    • 官方文档针对的是老版本,仅供参考,明白原理就好
  • 看完文档后,可以使用一些工具,查看站点的数据库
    • 例如 PhpMyAdmin
    • 注意不要乱改

一个栗子

假设我们要统计全站一共有多少篇文章

  • 文章数据是存在 typecho 的 post 表中,每篇文章一条记录
  • 统计文章数量也就是 count 一些有多少条记录
function countPosts() {
    $db = Typecho_Db::get();
    $count = $db->fetchRow(
        $db->select('COUNT(1)')
           ->from('table.contents')
           ->where('type = ?', 'post')
    );
    return $count['COUNT(1)'];
}
  • 在需要获取文章数量的地方,用 <?php countPosts() ?> 调用

举一反三

  • 获取所有分类的数量
function countCategories() {
    $db = Typecho_Db::get();
    $count = $db->fetchRow(
        $db->select('COUNT(1)')
           ->from('table.metas')
           ->where('type = ?', 'category')
    );
    return $count['COUNT(1)'];
}
  • 获取公开文章的数量
$count = $db->fetchRow(
    $db->select('COUNT(1)')
       ->from('table.contents')
       ->where('type = ?', 'post')
       ->where('status = ?', 'publish')
);
免责说明

本站资源部分来自网友投稿,如有侵犯你的权益请联系管理员或给邮箱发送邮件PubwinSoft@foxmail.com 我们会第一时间进行审核删除。
站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业途径!请在下载24小时内删除!


如果遇到评论下载的文章,评论后刷新页面点击对应的蓝字按钮即可跳转到下载页面
本站资源少部分采用7z压缩,为防止有人压缩软件不支持7z格式,7z解压,建议下载7-zip,zip、rar解压,建议下载WinRAR

温馨提示:本站部分付费下载资源收取的费用为资源收集整理费用,并非资源费用,不对下载的资源提供任何技术支持及售后服务。

给TA打赏
共{{data.count}}人
人已打赏
Typecho教程

Typecho干掉慢死的gravatar,用QQ头像和随机或者固定头像代替

2023-3-28 9:55:28

Typecho教程WordPress教程

过滤用户输入或者接口提交的php参数

2023-3-28 10:02:50

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索