主题修改都是微调,与其说是修改,不如叫优化。主要思路是,能用代码解决,就不用插件,调用资源越少越好,保持主题精简,即便后续系统主题有更新,只有修改一些代码就能复原,轻松省心,维护方便。

这篇文章算是备份,后续如有改动,随时更新到这里。由于改动太多,更新不及时,有的忘记改了什么,下面改动内容和现在主题样式已经有了出入,供大家参考,自行摸索吧。

关于默认主题网站性能优化,可以看这篇内容,算是修改汇总续集吧。

修改电脑端文字大小

style.css中修改如下

body {
  font-size: 95%;
}

修改手机端文字大小

style.css中修改如下

@media (max-width: 767px) {
  body {
    font-size: 95%;
  }

修改顶部网站名称文字大小

style.css中修改如下

#logo {
  color: #333;
  font-size: 1.5em;
}

修改顶部网站副标题斜体为正常

style.css中修改如下

.description {
  margin: .5em 0 0;
  color: #999;
  font-style: normal;
}

添加favicon.ico

该文件用于浏览器标签图标显示,制作网站如下,完成后放到主题根目录,最后在header.php<head>标签中引用即可。

ico制作网站:www.bitbug.net

引用代码

<link rel="shortcut icon" href="/usr/themes/default/favicon.ico" type="image/x-icon" />

顶部导航增加归档页面

在主题根目录新建文件archives.php,内容如下,最后登录后台,新建独立页面,自定义模板选择‘文章归档’即可。

<?php 
/**
 * 文章归档
 * 
 * @package custom 
 * 
 */$this->need('header.php');
?>

<!--page.php-->

  <div>
  
  <h2 class="title"><strong>&nbsp;&nbsp;文章归档</strong></h2>
<?php $this->widget('Widget_Contents_Post_Recent', 'pageSize=10000')->to($archives);
    $year=0; $mon=0; $i=0; $j=0;
    //$output = '<article class="archives"><ul class="archives-list">';
    while($archives->next()):
        $year_tmp = date('Y',$archives->created);
        $mon_tmp = date('m',$archives->created);
        $y=$year; $m=$mon;
        if ($mon != $mon_tmp && $mon > 0) $output .= '</ul></div></li></article>';  //结束拼接
        if ($year != $year_tmp && $year > 0) $output .= '</ul>';
        if ($year != $year_tmp) {
            $year = $year_tmp;
            //$output .= '<h4>'. $year .' 年</h4><ul>'; 
        }
        if ($mon != $mon_tmp) {
            $mon = $mon_tmp;
            $output .= '<article class="archives"><div class="item"><ul><h4>'.$year .'-'. $mon .'</h4>'; 
        }
        $output .= '<li><time>'.date('',$archives->created).'</time><a href="'.$archives->permalink .'">'. $archives->title .'</a></li>'; //输出文章日期和标题
    endwhile;
    
    echo $output;
?>

</div>

手机端显示标签、归档、搜索

这三个已整合到归档页面,用独立页面的方式。具体代码如下

<h2 class="post-in-title">搜索内容</h2>
<div class="category-search"> 
        <form method="post">
            <input type="text" name="s" class="text" placeholder="输入关键词回车搜索" autofocus />
        </form>
    </div>

        <h2 class="widget-title"><?php _e('文章标签'); ?></h2>
        <ul class="widget-list">
        <?php $this->widget('Widget_Metas_Tag_Cloud', 'ignoreZeroCount=1&limit=28')->to($tags); ?>
        <?php while($tags->next()): ?>
        <a href="<?php $tags->permalink(); ?>" class="size-<?php $tags->split(5, 10, 20, 30); ?>"><?php $tags->name(); ?></a>
        <?php endwhile; ?>
        </ul>
    </section>

删除文章标题下评论和分类

archive.php(分类页和标签页)、index.php(首页)、post.php(文章)里删除以下代码

<li itemprop="interactionCount"><a href="<?php $this->permalink() ?>#comments"><?php $this->commentsNum('评论', '1 条评论', '%d 条评论'); ?></a></li>
<?php _e('分类: '); ?><?php $this->category(','); ?>

删除文章和独立页面底部评论功能

post.phppage.pho删除如下代码

    <?php $this->need('comments.php'); ?>

精简style.css

由于博客没有启用评论,所以要删除 Comment list 和 Comment reply 相关样式。

精简 normalize.css 并CDN加速

由于该文件大部分都是备注说明,删除说明后文件大小减少一半。最后再上传CDN加速,其他css文件依然在服务器端,normalize.css只是保持各浏览器样式统一的作用,即使CDN临时关闭,也不影响整个网站的效果。

文章标题下面把作者名字的颜色变灰

archive.php(分类页和标签页)、index.php(首页)、post.php(文章)里添加代码style="color:#999;",位置如下:

<li itemprop="author" itemscope itemtype="http://schema.org/Person"><?php _e('作者: '); ?><a
itemprop="name" href="<?php $this->author->permalink(); ?>"
rel="author" style="color:#999;"><?php $this->author(); ?></a></li>

文章底部添加分类并优化样式

post.php标签代码位置替换成如下

<ul itemprop="keywords" class="tags">
<li><?php _e('分类: '); ?><?php $this->category(','); ?></li>
<li><?php _e('标签: '); ?><?php $this->tags(', ', true, 'none'); ?></li></ul>

给li标签设置和标题下面作者时间一样的样式,在style.cssMain位置,tags替换成如下样式代码

.post .tags {
  clear: both;
  margin-top: 1em;
  padding: 0;
  color: #999;
  font-size: .92857em;}
.tags li {
  display: inline-block;
  margin: 0 8px 0 0;
  padding-left: 12px;
  border-left: 1px solid #EEE;}
.tags li:first-child {
  margin-left: 0;
  padding-left: 0;
  border: none;}

修改后由于分类和标签距离文章内容太近,整体不和谐,所以需要再加一个段横线,在post.php文件分类和标签代码上方提前如下内容:

<div style="border: 0.5px solid #EEE;width:100px;height:0"></div>

侧边栏浮动(不会)

从网上找到了方法,好像要调用js,本着减少资源调用的原则,能不用就不用。该需求暂时也不重要,以后再说。

修改网站超链接颜色

style.css中修改成如下

/*超链接显示颜色*/
a {
  color: #444;
  text-decoration: none;
}
/*鼠标放到超链接上的颜色*/
a:hover, a:active {
  color: #3354AA;
}

添加网站底部备案信息,并改变颜色为灰色

footer.php添加如下代码

<a target="_blank" rel="nofollow" href="http://www.beian.miit.gov.cn/" style="color:#999;" >冀ICP备19025288号</a>

颜色代码style="color:#999;"需放到超链接标签内。

底部备案信息字体变小

style.css中修改成如下

#footer {
  padding: 2em 0;
  line-height: 1;
  text-align: center;
  font-size: 0.85em;
  color: #999;
}

删除首页文章评论字段

index.php删除如下代码

<li itemprop="interactionCount"><a itemprop="discussionUrl" href="<?php $this->permalink() ?>#comments"><?php $this->commentsNum('评论', '1 条评论', '%d 条评论'); ?></a></li>

文章超链接新窗口打开

虽然可以在系统文件修改代码实现,但是全局的,不太灵活,所以我选择在编辑文章的时候用a标签实现,如下。

<a target="_blank" rel="nofollow" href="插入网址">文本内容</a>

其中rel="nofollow"用于告诉搜索引擎不要追踪该链接,可加可不加,如果是外站链接,建议加上。

修改数字和英文字体

默认主题数字字体为Georgia,是一个不对齐的衬线字体,和中文结合看起来有点别扭,需要改掉,在style.css修改如下代码。

font-family: "Helvetica Neue", Helvetica, Arial, "PingFang SC", "Hiragino Sans GB", "Heiti SC", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;

修改默认登录地址

typecho默认的后台登录路径是 domain.com/admin/,为提高安全性,需要把admin文件夹名字修改成只有自己知道的名字,然后在系统根目录config.inc.php里在如下代码中,修改成刚才修改名字即可。

/** 后台路径(相对路径) */
define('__TYPECHO_ADMIN_DIR__', '/admin/');

如果修改默认登录地址后,一定不要在前端显示登录入口,不然修改登录地址就没意义了。

隐藏前端登录地址

在主题根目录sidebar.php文件中,删除相应代码即可,如下,同理评论rss、文章rss也能删除。

<?php if($this->user->hasLogin()): ?>
<li class="last"><a href="<?php $this->options->adminUrl(); ?>"><?php _e('进入后台'); ?> (<?php $this->user->screenName(); ?>)</a></li>
<li><a href="<?php $this->options->logoutUrl(); ?>"><?php _e('退出'); ?></a></li>
<?php else: ?>
<li class="last"><a href="<?php $this->options->adminUrl('login.php'); ?>"><?php _e('登录'); ?></a></li>
<?php endif; ?>

当然,也可以直接在后台控制面板直接隐藏【其他】版块。

设置网站地图sitemap

插件实现 Sitemap-for-Typecho

添加侧边栏标签云

sidebar.php添加如下内容:

        <section class="widget">
    <h2 class="widget-title"><?php _e('标签'); ?></h2>
    <ul class="widget-list" style="display: flex; flex-wrap: wrap; padding: 0; list-style: none;">
        <?php $this->widget('Widget_Metas_Tag_Cloud', 'ignoreZeroCount=1&limit=28')->to($tags); ?>
        <?php while($tags->next()): ?>
        <li style="margin-right: 10px;"><a href="<?php $tags->permalink(); ?>" class="size-<?php $tags->split(5, 10, 20, 30); ?>"><?php $tags->name(); ?></a></li>
        <?php endwhile; ?>
    </ul>
       </section>

调整文章行间距

style.css中修改如下内容

/* -----------------
 * Content format
 *--------------- */
.post-content, .comment-content {
  line-height: 1.7;
  word-wrap: break-word;
}

文章两端对齐

style.css中添加text-align: justify,如下

/* ------------------
 * Main
 * --------------- */
.post {
  padding: 15px 0 20px;
  border-bottom: 1px solid #EEE;
  text-align: justify
}

调整页面左右距离

grid.css中修改如下内容

.row > [class*="col-"] {
  float: left;
  min-height: 1px;
  padding-right: 3px;
  padding-left: 3px; }

不建议调整,改动后会影响到手机端显示。(padding-rightpadding-left默认为10px)

单独修改手机端文章两端距离

style.css的@media (max-width: 768px) 里添加如下内容

  .post {
    max-width: 100%; /* 在平板或更小尺寸的设备上,内容宽度占满屏幕宽度 */
    padding: 10px; /* 根据需要调整内边距 */
  }

添加谷歌分析统计代码

暂时不需要,阿里云虚拟主机自带网站分析功能,数据很全,够用了。

修改归档日期为中文,并加入文章数量统计

sidebar.php修改内容如下:

<?php $this->widget('Widget_Contents_Post_Date', 'type=month&format=Y年m月')->parse('<li><a href=" 
 {permalink}">{date}</a> <span id="ignore">({count})</span></li>'); ?>

字段Y年m月可以让前端日期显示中文,字段<span id="ignore">({count})</span>为统计当月文章数量。*1

按年归档,则修改成type=year&format=Y年即可。