这篇日志非常全面地总结了 Typecho 模板中常用的调用代码，涵盖了站点标题、文章循环、分页、文章内容、作者信息、标签、分类、评论等各个方面。对于 Typecho 新手来说，这份代码清单无疑是非常有用的，可以帮助他们快速上手并搭建出美观实用的博客网站。1站点动态标题<?php $this->archiveTitle(array( 'category'=>_t('分类 %s 下的文章'), 'search'=>_t('包含关键字 %s 的文章'), 'tag' =>_t('标签 %s 下的文章'), 'author'=>_t('%s 的主页') ), '', ' - '); ?>2站点地址，名称与描述<?php $this->options->siteUrl(); ?>//站点地址 <?php $this->options->title(); ?>//名称 <?php $this->options->description() ?>//描述3index.php文章循环输出<?php if ($this->have()): ?>//判断文章存在与否 <?php while($this->next()): ?>//开始循环 <a href="<?php $this->permalink() ?>"><?php $this->title() ?>//文章标题和超链接 <a href="<?php $this->author->permalink(); ?>"><?php $this->author(); ?>//作者名称和超链接 <?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; ?>//判断结束4翻页代码<?php $this->pageNav('上一页', '下一页', '5', '……'); ?>//显示多个页码的 <?php $this->pageLink('下一页','next'); ?> <?php $this->pageLink('上一页'); ?>//只显示上一页下一页5页码显示当前页码：<?php if($this->_currentPage>1) echo $this->_currentPage; else echo 1;?> 总页码：<?php echo ceil($this->getTotal() / $this->parameter->pageSize); ?>6文章全文显示<?php $this->content(); ?>7登陆判断<?php if($this->user->hasLogin()):?> 登陆才可以看到这里的内容 <?php endif;?>8文章作者名称与主页地址<a href="<?php $this->author->permalink(); ?>"><?php $this->author(); ?>9文章最后编辑时间<?php echo gmdate('Y-m-d H:i', $this->modified + Typecho_Widget::widget('Widget_Options')->timezone); ?>10当前文章id<?php $this->cid(); ?>11文章中的上一篇和下一篇上一篇: <?php $this->thePrev('%s','没有了'); ?> 下一篇: <?php $this->theNext('%s','没有了'); ?>12文章标签<?php $this->tags(', ', true, 'none'); ?>说明：(', ', true, 'none')第一个单引号间的逗号代表标签与标签的间隔用逗号隔开，true是标签以超链接形式输出，none为该文章没有标签时显示的提示信息。13用户昵称<?php $this->user->screenName(); ?>14后台地址与登陆地址<?php $this->options->adminUrl(); ?>//后台地址 <?php $this->options->adminUrl('login.php'); ?>//登陆地址15分类描述<?php echo $this->getDescription(); ?>16标签相关文章<?php $this->related(5)->to($relatedPosts); ?> <?php while ($relatedPosts->next()): ?> <a href="<?php $relatedPosts->permalink(); ?>" title="<?php $relatedPosts->title(); ?>"><?php $relatedPosts->title(); ?> <?php endwhile; ?> 17调用某分类文章，pageSize是数量，mid是分类号：<?php $this->widget('Widget_Archive@index', 'pageSize=6&type=category', 'mid=47′) ->parse(' {title} '); ?>18首行缩进问题,加入css实现.post-content p{ text-indent: 2em; /*em是相对单位，2em即现在一个字大小的两倍*/ } 19最新文章<?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, '…'); ?> <?php endwhile; ?>20神奇的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; ?>21总访问量1) 首先，在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)']); }2) 然后用下面代码调用：<?php echo theAllViews();?>例如：你是第<?php echo theAllViews();?>位相遇的小伙伴2网站运行时间1) 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 ''.$value['years']. '年'.$value['days']. '天'.$value['hours']. '小时'.$value['minutes']. '分'; } else { echo ''; } }然后用下面代码调用：<?php getBuildTime(); ?>2) JS调用直接在模板文件里添加以下两种样式的任意一种样式一本站已安全运行: 样式二 #momk{animation:change 10s infinite;font-weight:800; } @keyframes change{0%{color:
前言因为Joe主题作者不再更新，博主易航基于原主题 7.3.7 最新版开发了再续前缘版。感谢博主 易航 。主题亮点1、整包仅1.3Mb，却实现超强功能，极其迅速的响应（在开发时，都是使用30000篇文章进行开发测试）2、全站变量名、类名统一规范，重在方便更多人参与二开与拓展3、主题开箱即用，没有任何复杂的操作，无需像其他主题去特意创建个分类等4、主题首发Typecho独家Joe编辑器5、主题响应式布局，不依赖任何响应式框架，采用 Joe 独家响应式6、主题在一切可能暴露的接口上，屏蔽sql注入、xss攻击风险，提供安全保障7、内置超强视频功能、包含直播功能、全网影视功能、文章内插入视频功能8、主题SEO极致优化，Lighthouse SEO跑分彪满100分9、主题色彩全局公用、小白轻松直接修改整站自定义主题色10、主题内置代码高亮、无需借助任何插件、支持200种语言11、主题首发极强画图回复功能，为你的博客带来用户互动，不再像传统博客那样，仅限文字12、主题内置sitemap、百度推送、友链、隐藏内容回复、付费、登录可见等，无需依赖任何插件13、主题内置Typecho后台独立友情链接管理面板，独立商品订单管理面板，无需依赖任何插件站点演示http://www.xboy.uk主题下载{hide}网盘提取码下载地址123网盘Acklhttps://www.123865.com/s/jiEmjv-b68xd{/hide}TIPs1.文章内容页面的图片默认显示比较小，可以修改assets/css下的joe.global.css下的.joe_detail__article img:not([class])样式，高度由30vh改为100%。.joe_detail__article img:not([class]) { display: block; max-width: 100%; *max-height: 100%;* border-radius: var(--radius-inner); transition: box-shadow 0.35s, -webkit-transform 0.35s; transition: transform 0.35s, box-shadow 0.35s; transition: transform 0.35s, box-shadow 0.35s, -webkit-transform 0.35s; cursor: zoom-in; margin: 0 auto }