QQ爹博客 QQ爹博客

typecho显示用户文章总数量

in Typecho 文章转载请注明来源!

之前写过类似文章《typecho 显示当前作者文章总数量》,但是实现方法明显不太好。所以今天写个函数来获取吧!

functions.php中加入如下函数

function allpostnum($id){
$db = Typecho_Db::get();
$postnum=$db->fetchRow($db->select(array('COUNT(authorId)'=>'allpostnum'))->from ('table.contents')->where ('table.contents.authorId=?',$id)->where('table.contents.type=?', 'post'));
$postnum = $postnum['allpostnum'];
return $postnum;
}

显示当前作者文章总数量调用代码如下(适用于post.php,author.php,或者index.phpwhile循环中等等)

<?php echo allpostnum($this->author->uid); ?>

显示特定uid作者文章总数量调用代码如下(适用于任意模板文件)

<?php echo allpostnum(1); ?>
//数字1改成对应作者的uid即可

之前不写函数是以因为我不会哈,昨天研究下数据库,发现这玩意没那么复杂,挺有趣的233!

代码解析

$db = Typecho_Db::get();
//获取数据库
$postnum=$db->fetchRow($db->select(array('COUNT(authorId)'=>'allpostnum'))->from ('table.contents')->where ('table.contents.authorId=?',$id)->where('table.contents.type=?', 'post'));
//按条件查询数据,将符合结果的条数生成一个数组
//print_r($postnum);取消注释可调试显示结果
$postnum = $postnum['allpostnum'];
//获取作者文章总数量
return $postnum;
//返回作者文章总数量,用return能够更加方便的处理事情

感谢
感谢远.山教我用COUNT语法直接可以返回符合结果的数量,提高代码效率!

jrotty WeChat Pay

微信打赏

jrotty Alipay

支付宝打赏

文章二维码

扫描二维码,在手机上阅读!

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
文章链接:https://qqdie.com/archives/typecho-author-allpostsnum.html (转载时请注明本文出处及文章链接)

typecho数据库用户文章文章数量
发表新评论
已有 6 条评论
  1. Roogle
    Roogle
    回复

    没法输入代码 Typecho_Widget::widget('Widget_Users_Admin')->to($users);

    1. Jrotty
      Jrotty本文作者
      回复

      @Roogle QAQ修复了这个bug,<?php Typecho_Widget::widget('Widget_Users_Admin')->to($users); ?><?php $users->postsNum(); ?>这样怎么指定要输出哪个用户的文章总数量呢

  2. Roogle
    Roogle
    回复

    刚才在找这个代码,结果看到后台好像系统自己的调用方法,就是直接使用 '$users->postsNum();' 即可

    1. Jrotty
      Jrotty本文作者
      回复

      @Roogle 好像不能直接用...

      1. Roogle
        Roogle
        回复

        @Jrotty 需要给users传值<?php Typecho_Widget::widget('Widget_Users_Admin')->to($users); ?>

  3. LingC
    LingC
    回复

    刘明


前篇 后篇