一些有趣的调用代码

48天前339阅读约1分钟 

整理了下微信收藏夹里以前收集的几个 Typecho 小功能代码,不是很常用的那种,今天抽空放在了这篇文章里:

typecho评论增加楼层显示:

<?php if($comments->levels == 0): ?>
<?php if($comments->sequence == 1): ?>沙发
<?php elseif($comments->sequence == 2): ?>板凳
<?php elseif($comments->sequence == 3): ?>地毯
<?php else: ?>
第<?php  $comments->sequence(); ?>楼<?php endif; ?>
<?php endif; ?>
使用方法:放置在你的评论文件中评论列表循环处。

typecho 根据文章访问量分等级:

function Viewlevel($cid){
    $db = Typecho_Db::get();
    $exist = $db->fetchRow($db->select('str_value')->from('table.fields')->where('cid = ?', $cid))['str_value'];
//这里需要将 str_value 修改成你的阅读量数据库字段
    if($exist<100){
        echo '<span>新文</span>';
    }elseif ($exist<300 && $exist>=100) {
        echo '<span>爽文</span>';
    }elseif ($exist<1000 && $exist>=300) {
        echo '<span>荐文</span>';
    }elseif ($exist<5000 && $exist>=1000) {
        echo '<span>热文</span>';
    }elseif ($exist<10000 && $exist>=5000) {
        echo '<span>头条</span>';
    }elseif ($exist<30000 && $exist>=10000) {
        echo '<span>爆文</span>';
    }elseif ($exist>=30000) {
        echo '<span>神贴</span>';
    }}
调用代码:<?php Viewlevel($this->cid); ?>
可以用在首页文章列表页显示,根据页面浏览量分为各种标签,或者也可以像我首页一样替换为图标等等

typecho 实现那年今日功能:

function _getHistoryToday($created){
    $date = date('m/d', $created);
    $time = time();
    $db = Typecho_Db::get();
    $prefix = $db->getPrefix();
    $sql = "SELECT * FROM `{$prefix}contents` WHERE DATE_FORMAT(FROM_UNIXTIME(created), '%m/%d') = '{$date}' and created <= {$time} and created != {$created} and type = 'post' and status = 'publish' and (password is NULL or password = '') LIMIT 5";
    $result = $db->query($sql);
    if($result instanceof Traversable) {
    foreach ($result as $item) {
    $item = Typecho_Widget::widget('Widget_Abstract_Contents')->push($item);
    $title = htmlspecialchars($item['title']);
    $permalink = $item['permalink'];
    echo "<li class='item'><a class='link' href='{$permalink}' title='{$title}'>{$title}</a></li>";}}}
文章内调用:<?php _getHistoryToday($this->created) ?>
全站内调用:<?php _getHistoryToday(time()) ?>
可以实现调用去年、前年或者很多年前当天发布的文章。

typecho 全站数据调用:

<?php Typecho_Widget::widget('Widget_Stat')->to($stat); ?>
文章总数:<?php $stat->publishedPostsNum() ?>篇
分类总数:<?php $stat->categoriesNum() ?>个
评论总数:<?php $stat->publishedCommentsNum() ?>条
页面总数:<?php $stat->publishedPagesNum() ?>页

typecho 一言:

function GetHitokoto(){
    $url = 'https://v1.hitokoto.cn/?encode=json';
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 6);
    $response = curl_exec($ch);  
    if($error=curl_error($ch)){  
        return '隔着屏幕轻易产生感情的你,肯定很孤独吧。';
    }  
    curl_close($ch);
    $array_data = json_decode($response,true);
    $Emu_content = $array_data['hitokoto'].'—《'.$array_data['from'].'》';
    return $Emu_content;
}

调用语句:<?php echo GetHitokoto(); ?>

typecho 实现功能后台开关按钮:

function themeConfig($form){
    $test = new Typecho_Widget_Helper_Form_Element_Select('test',array(0=>'不开启',1=>'开启'),0,'测试功能','开启网站测试功能');   
    $form->addInput($test);}
前台放入以下代码:
<?php if($this -> options -> test == '1'): ?>
这里可以放执行的代码、样式等内容
<?php endif; ?>
有些不常用的代码或者效果,可以自己加个开关在后台控制,免去每次加了再删除再添加的尴尬。

至于这些代码有啥用,我已经都写在标题上啦,虽然都不太常用,但是用在一些特殊的地方还是有意想不到的效果的,哈哈。

phptypecho12 

一些有趣的调用代码 - Jdeal | Life is like a Design.