最后更新于2018年12月27日; 如遇到问题,请留言及时通知站长; 欢迎加入 三生三世,讨论各种问题!

站长买的主题也不少,闲来看看优质主题,然后就提取各种功能。当然,大部分功能都是某些主题专用,需要适当修改才能用,比如主题的一些选项判断php语句之类的,删掉就可以提取出来了。今天这篇热门文章来自Handsome主题,提取出来,顺便写了点CSS应用在本站。如果在使用过程中,遇到什么问题,请留言,站长会及时处理。谢谢各位长期以来的支持!好啦,下面附上站长提取到的代码!

function.php代码

打开主题的function.php文件,在第二行或者最后一行添加如下代码。

function returnHotPosts($hot){
        $days = 99999999999999;
        $time = time() - (24 * 60 * 60 * $days);
        $db = Typecho_Db::get();
        $prefix = $db->getPrefix();
        //echo date('Y-n-j H:i:s',time());
        if (!array_key_exists('views', $db->fetchRow($db->select()->from('table.contents'))))
            $db->query('ALTER TABLE '. $prefix .'contents ADD views INTEGER(10) DEFAULT 0;');
        $orderType = $options->hotPostOrderType;
        if (empty($orderType)){
            $orderType = 'commentsNum';
        }else{
            $orderType = $options->hotPostOrderType;
        }
        $sql = $db->select()->from('table.contents')
            ->where('created >= ?', $time)
            ->where('table.contents.created <= ?', time())
            ->where('type = ?', 'post')
            ->where('status =?', 'publish')
            ->limit(5)
            ->order($orderType,Typecho_Db::SORT_DESC);
        //echo $sql->__toString();
        $result = $db->fetchAll($sql);
        $index = 0;
        $isShowImage = true;
        if (count($options->indexsetup)>0 && in_array('notShowRightSideThumb',$options->indexsetup)){
            $isShowImage = false;
        }
        foreach($result as $val){
                    $val = Typecho_Widget::widget('Widget_Abstract_Contents')->filter($val);
            echo '<div class="list-group-item">
                    <span class="list-group"><a href="' . $val['permalink'] . '" title="' . $val['title'] . '"> ' . $val['title'] . ' </a></span>
                    <small class="meta" style="display:none;">
                    <span class="meta-views"><span class="meta-value">'.$val['commentsNum'].'</span>
                    </span>
                    <span class="meta-date"><span class="meta-value">'.$val['views'].'</span>
                    </span>
                    </small>
                    </div>';
            $index ++;
        }
    }

然后,在你想要显示热门文章的地方,插入如下代码

footer.php代码

<div class="hot"><h3>热门文章</h3><?php returnHotPosts($this); ?></div>

最好是放到边栏文件里,站长这主题没有边栏,就自己直接固定位置放了边栏,下面是站长的css文件内容,主要是固定热门文章位置,阴影特效,边框特效,颜色修改,指定屏幕宽度模块消失,标题居中,文章前面的小图标以及适配本站的夜间模式。

css代码

.hot {
    overflow: auto;
    position: fixed;
    top: 3.2em;
    right: 0;
    padding: 1em;
    border-left: 1px solid #ccc;
    width: 15em;
    opacity: 0;
    visibility: hidden
}
@media screen and (min-width:1350px) {
    .hot {
        opacity: 1;
        visibility: visible
    }
}
.hot h3 {
    margin-top: 1em;
    text-align: center
}
body.neon .hot {
    border-left: 1px solid #555
}
.hot {
    -webkit-box-shadow: 0 10px 20px #6f9fc7!important
}

body.neon .hot {
    -webkit-box-shadow: 0 10px 20px #c9861d!important
}
.list-group a {
    color: #555;
}
.list-group:before {
    content: "\f105";
    font-family: FontAwesome;
}

- The End -