涅槃博客 - 💡Typecho
type: channel
link: https://www.niepan.org/category/typecho/
items: 时隔五年终见Typecho正式版1.2.0发布
items: 新版JOE主题自动更新
items: Typecho 第一款支持黑暗模式的后台主题插件！
items: Joe主题美化修改记录
items: Typecho常用代码收集
items: Typecho模板常用调用代码

时隔五年终见Typecho正式版1.2.0发布
type: item
date: 2022-07-26T17:44:00+08:00
description: 最近比较忙，很久没有更新博客了，今天刚好有空，打算水一篇，就来说说刚才更新的Typecho吧。话说Typecho终于更新了正式版本1.2.0，距离上个版本1.1(17.10.30) 正式版发布已近五年时间了，真可谓有生之年系列。五年时间足以改变很多人和事，但Typecho还能保持初心一如既往的坚持下来也算不负广大用户的期待了。念念不忘，必有回响，N 年 Typecho 沉淀，现在，回应您的等待。更新了什么这个版本的开发经历了如此长的时间，以至于我无法一次性列出这么长的详细改进列表。除了修复了很多bug以外，我们重要的改进有如下几点：新的编辑器实时预览自动跟随效果，以及主题内预览功能后台界面对移动端的适配新的安装程序进入 PHP 7.2 时代，以及对 PHP 8 的更好支持对容器化的更好支持除了新功能，大家也可以发现我们的版本号规则有变化。新的版本号会采用常规的3组数字组成，比如 1.2.0 。之前是 [大版本/时间版本] 这样的形式，比如 1.1/17.10.30，代表的是在2017年10月30日发表的1.1版本。新的版本号采用常规的3组数字组成。比如1.2.0，前面两部分是大的版本号，重要更新的时候会变化，最后一位适用于微小更新，针对一些微小的bug修复更新。安装环境要求除了以前的几项以外，1.2.0版本PHP最低要求是v7.2- PHP 7.2 以上，支持PHP 8.0 - MySQL, PostgreSQL, SQLite 任意一种数据库支持，并在 PHP 中安装了相关扩展 - CURL 扩展支持 - mbstring 或 iconv 扩展支持 下载[btn href="http://typecho.org/download" type="#409eff"]官网下载 ♥️[/btn] [btn href="https://github.com/typecho/typecho/releases" type="#000000"]Github 🐙[/btn] [btn href="https://github.com/typecho/typecho/releases/latest/download/typecho.zip" type="#28a745"]直接下载（github）📥[/btn] [btn href="https://mirror.ghproxy.com/https://github.com/typecho/typecho/releases/download/v1.2.0/typecho.zip" type="#138496"]国内高速 🎯[/btn] [btn href="https://www.123pan.com/s/sKeA-9Z5mA" type="#f56c6c"]网盘下载 🐳[/btn]升级备份网站及数据库（虽说一般情况下不会有问题，但多备份还是很必要的）；进入后台，切换主题为系统默认，禁用所有插件，升级完成后再切换主题以及开启插件（非必需，但是这样会减少很多问题）；下载最新版Typecho，并上传下面的文件夹及文件覆盖旧版文件（如果是FTP上传，请将上传方式设置为二进制模式）；/admin/ /var/ /index.php /install.php登入网站后台，会检测到新版本，点击 完成升级 按钮，整个升级过程就完成了，这时你就会看到后台提示，你所使用的文件版本以及官方最新版本。（如下图）最后到这里整个Typecho 1.2.0的升级过程就记录完了，过程也比较简单，因为本博客早就升级过来，为了水这篇文章，添加截图，不得已又翻出了另外一个荒废的网站给升了个级，真是不容易啊。说点题外话，因为众所周知的原因，cdn.jsdelivr.net 的国内CDN已经被墙了，本站的图片原来大多数都托管在GIthub Repo，虽然已经切换到了 gcore.jsdelivr.net ，但是速度还是不理想，这就导致国内用户访问本站有点慢，所以今后的图片还是托管的自建的Chevereto图床。今天在上传图片的时候出现了一个很奇怪的问题，webp文件无法上传，经过一番折腾终于找到了原因，这就有了下面这篇文章。[post]2221[/post]

新版JOE主题自动更新
type: item
date: 2021-07-01T12:48:00+08:00
description: Joe主题更新到5.0.0版本后，因为属于重构版本，所以很多功能没有加上，需要频繁更新，但是每次更新都需要下载，然后删除老版本，在上传新版本，今天群里有个人分享的自动更新教程写的很好，于是我把补充的详细点[jline]START[/jline]第一步，克隆主题1、首先进入博客的 themes 文件夹下2、点击 终端 按钮，出现一个黑色的窗口3、 在这个窗口内输入以下指令并回车git clone https://github.com/HaoOuBa/Joe.git出现下图的样子，表示成功4、刷新当前页面，会发现多出一个叫 Joe 的目录第二步，设置自动更新主题1、进入宝塔 计划任务 页面2、任务类型选择 Shell 脚本3、任务名称，可以随便写一个，例如我写的是：Joe主题更新4、执行周期，就是多久更新一次，这个可以随便写，例如我设置的是每30分钟检测一次更新5、脚本内容，填写如下，注意需要将网站目录替换成你的#!/bin/sh cd /www/wwwroot/网站目录/usr/themes/Joe git pull完整的设置内容如下第四步，判断是否正常1、上面步骤都完成后，点击这里的 执行2、然后点击 执行 右侧的 日志 按钮，如果内容显示如下，则代表没有任何问题[jline]END[/jline]https://78.al/post/52.html

Typecho 第一款支持黑暗模式的后台主题插件！
type: item
date: 2021-06-28T12:26:00+08:00
description: SimpleAdmin 是一款即插即用的typecho后台美化插件.gogobody修改自小王先森 的后台插件，登录界面修改自泽泽站长（qqdie）的登录插件。[scode type="error"]上传后插件目录名修改为SimpleAdmin，否则启用不了上传后插件目录名修改为SimpleAdmin，否则启用不了上传后插件目录名修改为SimpleAdmin，否则启用不了[/scode]插件项目var needGithubWidget=1;.github-box {max-width: 100%;margin: 0 10px;} .github-box .github-box-download .download {top: 8px;} .github-box a {margin-top: -1px;margin-left: 2px;margin-right: 2px;} .github-box .github-box-title h3 {background: url([binary]) 5px center no-repeat;}注意本插件推荐 php 版本 7+ 。部分用户启用插件后出现白屏，请不要惊慌，正常操作，只需要等待60秒左右。因为PHP 5.5+版本以上的可能启用了PHP自带的opcache来加速脚本。但是如果opcache.revalidate_freq参数越大，服务器单位时间能接收的请求越多，但是加载代码的频率越低，会造成代码加载不及时的问题。您可以调整php.ini中的opcache.revalidate_freq为 0 来刷新脚本。下载[btn href="https://github.com/gogobody/SimpleAdmin/archive/refs/tags/1.1.4.zip" type="#28a745"]SimpleAdmin-1.1.4下载[/btn]特色插件，即插即用安全，不会破坏您的原有文件轻量级，几乎纯js,css修改支持 gogobody 原创的黑暗模式手机，pc 自适应界面绝对简洁！预览PC样式手机样式转自：即刻学术

Joe主题美化修改记录
type: item
date: 2021-02-05T16:21:00+08:00
description: 主题修改记录[jline]添加页脚代码[/jline]1、直接在footer.php中插入 了解我们 关于本站 订阅本站 投稿本站 年度归档 友情链接 热门标签 友情链接 友情链接 友情链接 友情链接 友情链接 友情链接 <!-- 关注我们 --> 我的微信 我的公众号 官方微博 本站简介 本站是一群志同道合的小伙们发起并成立的一个致力于EPUB电子书排版制作的平台，我们的宗旨是让每个人都能读到精致、美观的电子书，让阅读成为一种享受，欢迎广大书友加入我们。 2、footer.php引入模板文件foot.about.php（文件内容为上面的代码）<?php $this->need('component/foot.about.php'); ?>3、后台自定义CSS添加//页尾三栏 .j-footer { background: #ffffff; color:#222; } .j-footer .container a, .banquan-links a, .info { color:#222; } #footer-widget-box { line-height: 180%; background: #555; position: relative; padding: 10px 10%; box-shadow: 0 -1px 1px rgba(0, 0, 0, 0.1); } .footer-widget, .footer-widget a { color: #ccc; } .footer-widget { width: 100%; margin: 0 auto; } .footer-widget h3 { font-size: 16px; color: #ccc; margin: 10px 0 0 0; } .footer-widget .widget { background: #555; float: left; width: 33.33333333333%; padding: 0 20px; border: none; box-shadow: none; } .footer-widget, .footer-widget a { color: #ccc; } .footer-widget a:hover { color: #fff; } .footer-widget .widget ul { padding: 8px 0 15px; } .footer-widget .menu li { float: left; width: 50%; } #footer-widget-box .add-widgets, #footer-widget-box .add-widgets a { color: #fff; text-align: center; } .widget .textwidget { padding: 18px; } .clear { clear: both; display: block; } .wp-block-table.has-fixed-layout { table-layout: fixed; width: 100%; }[jline]添加侧边栏社交图标[/jline]1、aside.php中查找 <?php $this->widget('Widget_Contents_Post_Recent@aside565', 'pageSize=' . $this->options->JAuthorStatus)->to($hot); ?>替换为 <?php $this->need('component/post.social.php'); ?> <?php $this->widget('Widget_Contents_Post_Recent@aside565', 'pageSize=' . $this->options->JAuthorStatus)->to($hot); ?>2、CSS// 侧栏社交css .sidebar-box-two{ min-height:unset; } .social{ display: flex; justify-content: space-around; border-bottom: 1px solid var(--classC);} .social img { width: 20px; height: auto; margin: 15px 0; border-radius: 50px; } .social svg { width: 28px; height: auto; margin: 15px 0; border-radius: 5px; } .texiao:hover{ tr…

Typecho常用代码收集
type: item
date: 2020-09-14T18:42:00+08:00
description: 一、伪静态规则整理（Apache + NGINX）1、Apache 环境（.htaccess）<IfModule mod_rewrite.c> RewriteEngine On # 下面是在根目录，文件夹要修改路径，如 /oldtang/ RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php/$1 [L]2、NGINX 环境location / { index index.html index.php; if (-f $request_filename/index.html) { rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php) { rewrite (.*) $1/index.php; } if (!-f $request_filename) { rewrite (.*) /index.php; } }3、nginx二级目录location /blog/ { if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php last; } if (!-f $request_filename){ rewrite (.*) /blog/index.php last; } }注意blog就是您自己的二级目录，请根据实际情况调整。LAMP 建站教程，可以参考：《使用 LAMP 一键包部署 Linux 建站环境》。如果需要配置 SSL，并做强制 https 跳转，可以参考《LAMP 环境下安装配置 SSL 证书并自动跳转到 HTTPS》。二、开启gzip压缩，加速网站访问Gzip是一种常用的HTML压缩技术，通常情况下，Gzip开启后会将输出到用户浏览器的数据进行压缩的处理，这样就会减小通过网络传输的数据量，提高浏览的速度。Typecho的gzip压缩开启Typecho的gzip功能很简单，是和wordpress一样的，只要在根目录下的index.php文件里面加上下面这一句就可以了：/*添加Gzip*/ ob_start('ob_gzhandler');注意，是整个网站根目下的index.php文件，不是在主题目录下的。上面这句话建议加在最上面三、升级全站https数据库批量替换网址/内容内容UPDATE `typecho_contents` SET `text` = REPLACE(`text`,'旧域名地址','新域名地址');自定义UPDATE `typecho_fields` SET `str_value` = REPLACE(`str_value`,'旧域名地址','新域名地址');评论UPDATE `typecho_comments` SET `text` = REPLACE(`text`,'http://','https://'); UPDATE `typecho_comments` SET `url` = REPLACE(`url`,'http://','https://');四、TYPECHO支持emoji最近写文章的时候用到了emoji，发现报错：Database Query Error解决办法1、进入数据库，直接运行下列语句：alter table typecho_comments convert to character set utf8mb4 collate utf8mb4_general_ci; alter table typecho_contents convert to character set utf8mb4 collate utf8mb4_general_ci; alter table typecho_fields convert to character set utf8mb4 collate utf8mb4_general_ci; alter table typecho_metas convert to character set utf8mb4 collate utf8mb4_general_ci; alter table typecho_options convert to character set utf8mb4 collate utf8mb4_general_ci; alter table typecho_rel…

Typecho模板常用调用代码
type: item
date: 2020-09-14T18:40:00+08:00
description: 站点动态标题<?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 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; ?>//判断结束翻页代码<?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(); ?>文章最后编辑时间<?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); …