Typecho模板常用调用代码

  • 💡Typecho
  • 2746 阅读
  • 2020年09月14日
  • 0 条评论
  • 全文共635字, 阅读大约需要2分钟
  • 搜索引擎已收录

首页 / 💡Typecho / 正文

AI摘要
Gemini 1.5 Pro
此内容根据文章生成,并经过人工审核,仅用于文章内容的解释与总结
反馈

站点动态标题

<?php $this->archiveTitle(array(
'category'=>_t('分类 %s 下的文章'),
'search'=>_t('包含关键字 %s 的文章'),
'tag' =>_t('标签 %s 下的文章'),
'author'=>_t('%s 的主页')
), '', ' - '); ?>

站点地址,名称与描述

<?php $this->options->siteUrl(); ?>//站点地址
<?php $this->options->title(); ?>//名称
<?php $this->options->description() ?>//描述

index.php文章循环输出

<?php if ($this->have()): ?>//判断文章存在与否
<?php while($this->next()): ?>//开始循环
<a href="<?php $this->permalink() ?>"><?php $this->title() ?></a>//文章标题和超链接
<a href="<?php $this->author->permalink(); ?>"><?php $this->author(); ?></a>//作者名称和超链接
<?php $this->date('F j, Y'); ?>//文章发布时间
<?php $this->category(','); ?>//文章分类
<?php $this->commentsNum('%d Comments'); ?>//评论数量
<?php $this->content('Continue Reading...'); ?>//阅读全文more语法截取缩略内容(可改为<?php $this->excerpt(140,'....'); ?>自动截取前140个字符,根据需要也可以改成 <?php $this->summary(); ?新版功能,自动输出内容中第一个块级元素中的内容>)
<?php endwhile; ?>//循环结束
<?php else: ?>暂无与之相关文章<?php endif; ?>//判断结束

翻页代码

<?php $this->pageNav('上一页', '下一页', '5', '……'); ?>//显示多个页码的
<?php $this->pageLink('下一页','next'); ?>
<?php $this->pageLink('上一页'); ?>//只显示上一页下一页

页码显示

当前页码:<?php if($this->_currentPage>1) echo $this->_currentPage;  else echo 1;?>
总页码:<?php echo   ceil($this->getTotal() / $this->parameter->pageSize); ?>

文章全文显示

<?php $this->content(); ?>

登陆判断

<?php if($this->user->hasLogin()):?>
 登陆才可以看到这里的内容
<?php endif;?>

文章作者名称与主页地址

<a href="<?php $this->author->permalink(); ?>"><?php $this->author(); ?></a>

文章最后编辑时间

<?php echo gmdate('Y-m-d H:i', $this->modified + Typecho_Widget::widget('Widget_Options')->timezone); ?>

当前文章id

<?php $this->cid(); ?>

文章中的上一篇和下一篇

上一篇: <?php $this->thePrev('%s','没有了'); ?>
下一篇: <?php $this->theNext('%s','没有了'); ?>

文章标签

<?php $this->tags(', ', true, 'none'); ?>
说明:(', ', true, 'none')第一个单引号间的逗号代表标签与标签的间隔用逗号隔开,true是标签以超链接形式输出,none为该文章没有标签时显示的提示信息。

用户昵称

<?php $this->user->screenName(); ?>

后台地址与登陆地址

<?php $this->options->adminUrl(); ?>//后台地址
<?php $this->options->adminUrl('login.php'); ?>//登陆地址

分类描述

<?php echo $this->getDescription(); ?>

标签相关文章

<?php $this->related(5)->to($relatedPosts); ?>
<ul>
<?php while ($relatedPosts->next()): ?>
<li><a href="<?php $relatedPosts->permalink(); ?>" title="<?php $relatedPosts->title(); ?>"><?php $relatedPosts->title(); ?></a></li>
<?php endwhile; ?>
</ul>

调用某分类文章,pageSize是数量,mid是分类号:

<?php $this->widget('Widget_Archive@index', 'pageSize=6&type=category', 'mid=47′)
->parse('<li><a href="{permalink}">{title}</a></li>'); ?>

首行缩进问题,加入css实现

.post-content p{ 
text-indent: 2em; /*em是相对单位,2em即现在一个字大小的两倍*/ 
} 

最新文章

<?php $this->widget('Widget_Contents_Post_Recent')->to($post); ?>
<?php while($post->next()): ?>
<a href=”<?php $post->permalink(); ?>” title=”<?php $post->title(); ?>”>
<?php $post->title(25, '…'); ?></a>
<?php endwhile; ?>

神奇的is语法

<?php if ($this->is('post')) : ?>
    这里就是内容了
<?php endif; ?>
typecho可以使用is语法判断很多东西,比如
$this->is('index');
$this->is('archive');
$this->is('single');
$this->is('page');
$this->is('post');
$this->is('category');
$this->is('tag');
甚至是
$this->is('category', 'default');
$this->is('page', 'start');
$this->is('post', 1);

判断为当前页的第几篇文章,并单独输出内容

<?php if ($this->sequence == 0): ?>
//需要的插入
<?php endif; ?>

总访问量

首先,在functions.php里加入如下代码:

//门前大路上,走过一群小伙伴,快来数一数:2,4,6,7,8……
    function theAllViews()
        {
            $db = Typecho_Db::get();
            $row = $db->fetchAll('SELECT SUM(VIEWS) FROM `typecho_contents`');
                echo number_format($row[0]['SUM(VIEWS)']);
        }

然后用下面代码调用:

<?php echo theAllViews();?>

例如:你是第<?php echo theAllViews();?>位相遇的小伙伴

网站运行时间

一、PHP调用

首先,在functions.php里加入如下代码:

// 设置时区
date_default_timezone_set('Asia/Shanghai');
/**
 * 秒转时间,格式 年 月 日 时 分 秒
 *
 */
function getBuildTime() {
    // 在下面按格式输入本站创建的时间
    $site_create_time = strtotime('2019-06-23 00:00:00');
    $time = time() - $site_create_time;
    if (is_numeric($time)) {
        $value = array(
            "years" => 0, "days" => 0, "hours" => 0,
            "minutes" => 0, "seconds" => 0,
        );
        if ($time >= 31556926) {
            $value["years"] = floor($time / 31556926);
            $time = ($time % 31556926);
        }
        if ($time >= 86400) {
            $value["days"] = floor($time / 86400);
            $time = ($time % 86400);
        }
        if ($time >= 3600) {
            $value["hours"] = floor($time / 3600);
            $time = ($time % 3600);
        }
        if ($time >= 60) {
            $value["minutes"] = floor($time / 60);
            $time = ($time % 60);
        }
        $value["seconds"] = floor($time);

        echo '<span class="btime">'.$value['years'].
        '年'.$value['days'].
        '天'.$value['hours'].
        '小时'.$value['minutes'].
        '分</span>';
    } else {
        echo '';
    }
}

然后用下面代码调用:

<?php getBuildTime(); ?>
二、JS调用

直接在模板文件里添加以下两种样式的任意一种

  • 样式一
本站已安全运行:
<span id="momk"></span>
<script language=javascript>
function show_date_time(){
window.setTimeout("show_date_time()", 1000);
BirthDay=new Date("05-06-2016 12:12:24");//建站日期
today=new Date();
timeold=(today.getTime()-BirthDay.getTime());
sectimeold=timeold/1000
secondsold=Math.floor(sectimeold);
msPerDay=24*60*60*1000
e_daysold=timeold/msPerDay
daysold=Math.floor(e_daysold);
e_hrsold=(daysold-e_daysold)*-24;
hrsold=Math.floor(e_hrsold);
e_minsold=(hrsold-e_hrsold)*-60;
minsold=Math.floor((hrsold-e_hrsold)*-60);
seconds=Math.floor((minsold-e_minsold)*-60);
momk.innerHTML=daysold+"天"+hrsold+"小时"+minsold+"分"+seconds+"秒" ;
}
show_date_time();
</script>
<style>
#momk{animation:change 10s infinite;font-weight:800; }
@keyframes change{0%{color:#5cb85c;}25%{color:#556bd8;}50%{color:#e40707;}75%{color:#66e616;}100% {color:#67bd31;}}
</style>
  • 样式二
<span id="momk"></span><span id="momk" style="color: #ff0000;"></span>
<script type="text/javascript">
function NewDate(str) {
str = str.split('-');
var date = new Date();
date.setUTCFullYear(str[0], str[1] - 1, str[2]);
date.setUTCHours(0, 0, 0, 0);
return date;
}
function momxc() {
var birthDay =NewDate("2016-5-6");
var today=new Date();
var timeold=today.getTime()-birthDay.getTime();
var sectimeold=timeold/1000
var secondsold=Math.floor(sectimeold);
var msPerDay=24*60*60*1000; var e_daysold=timeold/msPerDay;
var daysold=Math.floor(e_daysold);
var e_hrsold=(daysold-e_daysold)*-24;
var hrsold=Math.floor(e_hrsold);
var e_minsold=(hrsold-e_hrsold)*-60;
var minsold=Math.floor((hrsold-e_hrsold)*-60); var seconds=Math.floor((minsold-e_minsold)*-60).toString();
document.getElementById("momk").innerHTML = "本站已安全运行"+daysold+"天"+hrsold+"小时"+minsold+"分"+seconds+"秒";
setTimeout(momxc, 1000);
}momxc();
</script>  <style>
#momk{animation:change 10s infinite;font-weight:800; }
@keyframes change{0%{color:#5cb85c;}25%{color:#556bd8;}50%{color:#e40707;}75%{color:#66e616;}100% {color:#67bd31;}}
</style>

 赞  赏

如果觉得我的文章对你有用,请随意打赏

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开  或者  扫一扫,即可进行扫码赞赏哦

本文经授权后发布,本文观点不代表立场,转载请联系原作者。
本文最后更新于2021年09月04日19时02分28秒,已超过1173天没有更新,若内容或图片失效,请留言反馈
本文链接:https://niepan.org/archives/2164.html(转载时请注明本文出处及文章链接)
作品采用:《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权

发表评论

博主 - <?php $this->author->screenName(); ?>

love2wind

记录生活,分享世界