[Typecho升级优化]提升首页加载速度以及若干升
1.给网站页签加icon图片
查看主题的index.php找header,顺势找到header.php
文件,你会在<header></header>
看到如下代码(如果没看到就加上去):
1
| <link rel="icon" type="image/ico" href="/favicon.ico">
|
因此我们在typecho包的根目录下放入favicon.ico图片,效果如下
2.修改后台路由提高安全性
Typecho 安装好后,默认的后台路径是/admin/,但有时默认路径可能存在安全隐患而且用admin来登录怪怪的
修改admin文件夹名称,同时修改系统根目录下的 config.inc.php 文件(把admin改成你的文件夹名称)
1 2
| /** 后台路径(相对路径) */ define('__TYPECHO_ADMIN_DIR__', '/admin/');
|
3.手动删除掉根目录的install.php文件
防止给黑客提供后门
4.优化首页加载过慢问题
使用edge发现网络中的首页TTFB
耗时过长。针对这个情况来进行一次优化
- 找到首页代码 index.php,die掉所有代码,发现ttfb很低,调整定位,最终锁定是文章循环导致加载过慢的
1
| <?php while($this->next()): ?>
|
- 继续调试。最终定位到问题是出在getPostView方法里。注释该方法再看,TTFB时间缩短很多。网页加载终于秒响应了(或者整个ul去掉)
1 2 3 4 5 6
| <ul class="card-meta-bottom"> <li class="card-meta-label card-meta-more"><a href="<?php $this->permalink(); ?>" title="Read More" target="_blank"><i class="iconfont icon-aria-more"></i><i class="iconfont icon-aria-more"></i></a></li> <li class="card-meta-label card-meta-views card-meta-right"><i class="iconfont icon-aria-view"></i> <?php Contents::getPostView($this); ?></li> <li class="card-meta-label card-meta-comments card-meta-right"><i class="iconfont icon-aria-comment"></i> <?php $this->commentsNum('%d'); ?></li> <!--li class="card-meta-label card-meta-likes"></li--> </ul>
|
修改为:
1 2 3 4
| <ul class="card-meta-bottom"> <li class="card-meta-label card-meta-views card-meta-right"><i class="iconfont icon-aria-view"></i><?php Contents::getPostView($this); ?></li> <li class="card-meta-label card-meta-comments card-meta-right"><i class="iconfont icon-aria-comment"></i> <?php $this->commentsNum('%d'); ?></li> </ul>
|
有兴趣的可以继续往下找。此方法在lib下的contents.php文件夹下。
同理发现分类页面也很卡,找到主题下面的archive.php文件,搜索下面代码即可,替换掉
1 2 3 4 5 6 7 8 9 10 11 12
| <ul class="card-meta-bottom"> <li class="card-meta-label card-meta-more"> <a href="<?php $this->permalink(); ?>" target="_blank"><i class="iconfont icon-aria-more"></i><i class="iconfont icon-aria-more"></i></a> </li> <li class="card-meta-label card-meta-views card-meta-right"> <i class="iconfont icon-aria-view"></i> <?php Contents::getPostView($this); ?> </li> <li class="card-meta-label card-meta-comments card-meta-right"> <i class="iconfont icon-aria-comment"></i> <?php $this->commentsNum('%d'); ?> </li> <!--li class="card-meta-label card-meta-likes"></li--> </ul>
|
修改为:
1 2 3 4
| <ul class="card-meta-bottom"> <li class="card-meta-label card-meta-views card-meta-right"><i class="iconfont icon-aria-view"></i><?php Contents::getPostView($this); ?></li> <li class="card-meta-label card-meta-comments card-meta-right"><i class="iconfont icon-aria-comment"></i> <?php $this->commentsNum('%d'); ?></li> </ul>
|
- 然后就是找找哪个页面卡就简单的优化一下了,这里就不演示了
6.启用GZIP压缩
ob_start('ob_gzhandler');
找到安装包文件的index.php。注意不是主题下面的index文件。然后加上如上代码。位置自己看着办
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| ob_start('ob_gzhandler');
if (!defined('__TYPECHO_ROOT_DIR__') && !@include_once 'config.inc.php') { file_exists('./install.php') ? header('Location: install.php') : print('Missing Config File'); exit; }
|
7.网站底部增加运行时间
找到footer.php文件,在自己想要的位置添加代码怎么居中自己想:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <script type="text/javascript"> function ShowRuntime() { BirthDay = new Date("2019-10-31 00:00:00"); Current = new Date(); TimeDiff = (Current.getTime() - BirthDay.getTime()); OneDay = 24 * 60 * 60 * 1000; days = TimeDiff / OneDay; Days = Math.floor(days); hours = (days - Days) * 24; Hours = Math.floor(hours); mins = (hours - Hours) * 60; Mins = Math.floor(mins); Secs = Math.floor((mins - Mins) * 60); //信息写入到DIV中 runtimeSpan.innerHTML = "本站已经努力运行了: " + Days + "天" + Hours + "小时" + Mins + "分" + Secs + "秒" } setInterval(ShowRuntime, 1000); </script>
|
8.移除文章显示内容
将index和archive文件的如下代码删除掉,看过很多主题都没有,我也觉得没必要。
1 2 3 4 5 6 7
| <div class="card-body"><?php if($this->fields->previewContent) $this->fields->previewContent(); else $this->excerpt(50, '...'); ?></div> <div class="card-line"></div>
|
9.让我们做一些SEO的事情
伪静态
自己不会弄啊
sitemap.xml
下载并安装并激活Sitemap
然后访问/sitemap.xml,至于sitemap有什么用嘛,大家都懂