TypechoJoeTheme

老狮的梦

统计
登录
用户名
密码
/
注册
用户名
邮箱
输入密码
确认密码

typecho作者页面,显示文章数和评论数

老狮博主
2020-12-22
/
2 评论
/
664 阅读
/
319 个字
/
百度已收录
12/22
本文最后更新于2021年01月05日,已超过170天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

最近弄了一个author page(作者页面),觉得好像少了些什么,这个页面没有显示作者的文章数和评论数,如果显示的话就比较完美了,于是在百度上找关于文章数和评论数的调用方法,然后集众家之长进行了优化。


点我看效果

下面开始教程:

第一步

在主题目录下面新建一个author.php文件,将以下代码复制进去。

该代码只适用于joe主题,其他主题请自行修改页头、页脚文件指向如:<?php $this->need('public/head.php'); ?>

<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>

<?php
if (empty($this->uid)) {
    $str = $_SERVER["REQUEST_URI"];
    if (preg_match('/\d+/', $str, $arr)) {
        $id = $arr[0];
        if ($this->user->hasLogin() && $this->user->uid == $id) {
            $lock = 0;
        } else {
            $lock = 1;
        }
        $info = userok($id);
        $this->user->uid = $id;
        $this->user->screenName = $info['screenName'];
        $this->user->mail = $info['mail'];
        $this->user->group = $info['group'];
    }
}
?>

<!DOCTYPE html>
<html lang="en">

<head>
    <?php $this->need('public/head.php'); ?>
</head>

<body>
<?php $this->options->JCustomBodyStart() ?>

<section id="joe">

    <!-- 头部 -->
    <?php $this->need('public/header.php'); ?>
    <!-- 主体 -->
    <section class="container j-index j-author">
        <section class="j-adaption">
            <div class="col-md-12">
                <!--创作中心s-->
                <header class="page-header">
                    <div style="text-align:center;padding:10px">
                        <?php $email = $this->user->mail;
                        $imgUrl = ParseAvatar($email, 1);
                        echo '<img src="' . $imgUrl . '" style="border-radius: 50px;" height="50" width="50">'; ?>
                        <div style="margin:10px;"><?php $this->user->screenName(); ?></div>
                        <div><span style="border-radius: 3px;color: var(--background);padding: 5px;background: var(--theme);font-size: 14px;"><?php dengji($comments->mail);?></span></div>  
                         <div style="margin:10px;"><span style="border-radius: 3px;color: var(--background);padding: 5px;background: var(--theme);font-size: 14px;">文章数:<?php echo allpostnum($this->author->uid); ?></span>
                         <span style="border-radius: 3px;color: var(--background);padding: 5px;background: var(--theme);font-size: 14px;">评论量:<?php echo commentnum($this->author->uid); ?></span>
</div>                      
                        <div style="margin:10px;">
                            <svg t="1608204283958" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3189" width="1em" height="1em"><path d="M826.46929 339.76682s19.698076 58.094327-94.090811 133.586954c0 0 55.19461-291.571526-302.170491-473.353774 0 0 99.090323 228.177717-108.089445 377.063177 0 0-78.792305-102.390001-226.677863-117.488526 0 0 61.394004 95.290694 56.394492 188.081633s-80.292159 196.880773-38.896201 328.567913c34.19666 108.789376 116.588614 214.879016 274.373206 247.775803-21.597891-54.894639-32.396836-112.589005 5.399472-261.774436 0 0 1.399863 123.587931 226.177913 255.275071 216.978811-57.494385 447.656284-264.574163 207.579728-677.733815z" p-id="3190" fill="#7a7b7c"></path></svg>
                            <?php echo allviewnum($this->user->uid); ?>                            
                        </div>
                    </div>
                </header>
            </div>

            <section class="main <?php $this->options->JListType() ?>">
                <div class="row author-page">
                    <div class="col-md-12">

                        <!--创作中心e-->
                        <section class="j-index-article article">
                            <!-- 列表 -->
                            <?php $this->need('component/index.list.php'); ?>
                        </section>
                    </div>
            </section>
        </section>
    </section>
    <!-- 尾部 -->
    <?php $this->need('public/footer.php'); ?>
</section>

<!-- 配置文件 -->
<?php $this->need('public/config.php'); ?>
</body>

</html>

第二步

functions.php放入以下代码(joe主题请放在core/core.php文件里面)

判断是否会员id

// 会员页判断是否会员id
function userok($id){
$db = Typecho_Db::get();
$userinfo=$db->fetchRow($db->select()->from ('table.users')->where ('table.users.uid=?',$id));
return $userinfo;
}

输出作者人气

/**输出作者人气*/
function allviewnum($id){
    $db = Typecho_Db::get();
    $postnum=$db->fetchRow($db->select(array('Sum(views)'=>'allviewnum'))->from ('table.contents')->where ('table.contents.authorId=?',$id)->where('table.contents.type=?', 'post'));
    $postnum = $postnum['allviewnum'];
    if($postnum=='0')
    {
        return '暂无访问';
    }
    elseif ($postnum>=10000) {
        return ' 1万+访问';
    }
    elseif ($postnum<10000 && $postnum>5000) {
        return ' 5K+访问';
    }
    else{
        return ' '.$postnum.' °c 访问';
    }

}

当前作者文章数

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'];
    if($postnum=='0')
    {
        return '暂无文章';
    }
    else{
        return '文章 '.$postnum.' 篇';
    }
}

当前作者评论数

function commentnum($id){
    $db = Typecho_Db::get();
    $commentnum=$db->fetchRow($db->select(array('COUNT(authorId)'=>'commentnum'))->from ('table.comments')->where ('table.comments.authorId=?',$id)->where('table.comments.type=?', 'comment'));
    $commentnum = $commentnum['commentnum'];
    if($commentnum=='0')
    {
        return '暂无评论';
    }
    else{
        return '评论 '.$commentnum.' 条';
    }
}

评论者认证等级

function dengji($i){
    $db=Typecho_Db::get();
    $mail=$db->fetchAll($db->select(array('COUNT(cid)'=>'rbq'))->from('table.comments')->where('mail = ?', $i)->where('authorId = ?','0'));
    foreach ($mail as $sl){
    $rbq=$sl['rbq'];}
    if($rbq<1){
    echo '博主';
    }elseif ($rbq<10 && $rbq>0) {
    echo '闲逛';
    }elseif ($rbq<20 && $rbq>=10) {
    echo '小坐';
    }elseif ($rbq<40 && $rbq>=20) {
    echo '常憩';
    }elseif ($rbq<80 && $rbq>=40) {
    echo '久住';
    }elseif ($rbq<100 && $rbq>=80) {
    echo '永驻';
    }elseif ($rbq>=100) {
    echo '成家';
    }
}

温馨提醒

单独引用评论等级<?php dengji($comments->mail);?>
单独引用文章数量<?php echo allpostnum($this->author->uid); ?>
单独引用评论数量<?php echo commentnum($this->author->uid); ?>
单独引用作者人气<?php echo allviewnum($this->user->uid); ?>

再次感谢

https://www.ruletree.club/archives/878/
https://www.dpaoz.com/57
https://geekscholar.net/archives/12/

Typecho美化代码
朗读
赞(0)
赞赏
感谢您的支持,我会继续努力哒!
版权属于:

老狮的梦

本文链接:

https://laolion.com/archives/2367.html(转载时请注明本文出处及文章链接)

评论 (2)
  1. 火喵 闲逛
    Windows 10 · Google Chrome

    作者页怎么调用呢qaq

    2021-06-04 回复
  2. 1 闲逛
    Windows 10 · Google Chrome

    {!{data:image/webp;base64,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}!}

    2021-01-18 回复

互动读者

  • 神话2闲逛

    评论 7 次 | 文章 0 篇

  • ptcry闲逛

    评论 3 次 | 文章 0 篇

  • 111闲逛

    评论 3 次 | 文章 0 篇

  • 火喵闲逛

    评论 2 次 | 文章 0 篇

标签云

最新回复

  1. 路过闲逛
    2021-06-24
  2. 88闲逛
    2021-06-23
  3. 萨达萨达按时闲逛
    2021-06-23
  4. 神话6闲逛
    2021-06-23
  5. 神话2闲逛
    2021-06-21