typecho主题开发:基于webpack5的多页面打包项目

前言一直想把基于webpack5的多页面打包整理一下,做成一个通用的typecho主题开发架子,之前在JJ主题上虽然以及由部分实现了,但是不是很理想,因为是第一次弄,所以还是有些粗糙。现在离职后得了空闲,于是把这个架子给搭起来了,基于这个架子做前端开发还是很方便的,起码各种框架都能通过按照包的方式使用,能用上先进的打包机还是很棒的!仓库地址github地址:webpack-multiple-entry觉得有用的话麻烦点个Star吧。如果有什么问题可以提交Issues或者在该文章下面留言

typecho主题开发:基于webpack5的多页面打包项目

让typecho支持特殊字符

起因由于最近在了解前端js中length不准的问题,其中文章带有一些特殊字符,而typecho和mysql都只是支持UTF-8字符,但是这个utf-8并不是真正意义上的utf-8,它最多支持3个字节的内容,也就是24bit,而我文章中的特殊字符是需要4个字节来存储的,这就导致文章无法正常的展示和保存。这个特殊字符和现在移动端常用的emoji表情差不多,emoji也是一种特殊字符,所以该教程同样适用于如何让typecho支持emoji表情。教程打开宝塔的phpmyadmin -> 找到typecho的数据库 -> 操作 -> 滑动到最底部找到排序规则 -> 选择ut...

477 73 0
让typecho支持特殊字符

typecho 真的很简单的自定义评论列表

以前写过一个关于自定义评论的文章,时至如今来看,还是有很多不足的,昨晚再新写主题的时候,也重新写了一次自定义评论,嗯,有了新的理解,因为其实真的很简单,仔细阅读本篇文章,相信你会有收获的。[hide]自定义评论模板到底要怎么做很简单,可以理解为两步:编写自定义评论的模板通过php渲染出自定义模板评论而为什么大多数人不会,其实就是因为官方的文档真的是,如果懂php的人,可能看了一两遍后明白了怎么回事,但是如果是小白入门,纯前端的童鞋,可能看的一脸蒙蔽。就算是原封不动的copy官方的示例代码也还是会报错,心累...因为,你不知道他要做什么,我编写了自定义模板函数threadedComment...

typecho 真的很简单的自定义评论列表

typecho 超完美上一篇下一篇文章加文章缩略图

之前写过一篇typecho上一篇下一篇的文章,但是当时是对官方的代码进行小改,虽然文章标题,链接都能获取到,但是没法获取到更多,包括文章缩略图。为此我是绞尽脑汁啊,还参考了一些有这种效果的作品,发现,不行,没有我想要的效果。他们的效果都是获取文章的自定义字段,也就是和自定义文章缩略图的那种路子,你只有设置了,他这里才能显示,他不能自动去获取,有的好像连个随机不够做吧。终于,有一天晚上,我一时兴起,想解决下这个问题,于是有了这篇文章,首先我们需要两段代码,这两段代码我是通过网上的代码进行修改的,去掉了一些部分。[hide]获取文章上一篇,下一篇cid/** * 显示上一篇 * * 如果没有...

typecho 评论表单头像

关于评论表单的这个头像,其实挺麻烦的,动不动代码就会报错,超蛋疼的,于是我琢磨了下,想了个思路。用户未登录使用固定头像用户登录了使用登录头像用户是访客,已经留言了,使用留言的邮箱获取头像众所周知,typecho的头像是使用全球头像Gravatar的,Gravatar他本身也是通过邮箱来设置账户的,所以我们通过邮箱也能获取到头像地址。不多说,上代码[hide]<?php //已登录?> <?php if ($this->user->hasLogin()) : ?> <?php $this->author->g...

typecho 评论表单头像

typecho 获取相关文章,指定数量

typecho获取相关文章页挺常用的,官方有这个代码,这里特意分享一下,讲一下用法。<?php $this->related(4,NULL); ?> <?php if ($relatedPosts->have()): ?> <?php while ($relatedPosts->next()): ?> <a href="<?php $relatedPosts->permalink(); ?>"> <h3><?php $relatedP...

typecho 获取最新文章,指定数量

发现这个方法还常用的,特意分享出来。<?php $this->widget('Widget_Contents_Post_Recent','pageSize=5')->to($news);?> <?php if($news->have()):?> <?php while($news->next()): ?> <a href="<?php $news->permalink();?>"> <h2 class="ca...

3551 0 0

typecho 获取文章缩略图、自定义文章缩略图、文章第一张缩略图、文章附件第一张图、文章随机图、文章随机图加速

typecho的缩略图,其实自己用了好久,最近才发现了一种最简单的组合,不用太多代码,有需要改改方法就行了。目前我总结了一个对文章缩略图的获取顺序:用户自定义缩略图文章第一张缩略图文章附件第一张图文章随机图是否开启cdn加速,使用加速地址前段本地地址基本上按照这个思路,所有的情况都能照顾到,当然我看了一些付费的主题,他会对用户自定义的缩略图进行定制,比如,大图,小图这些,其实我感觉挺麻烦的,哈哈这里我们一步一步完善这三步教程[hide]自定缩略图自定义缩略图我们需要一个自定义字段,这个自定义字段也是在网上找的别人的分享技术,这里贴出来用法直接在主题function.php文件里面,插入如...

typecho 获取文章缩略图、自定义文章缩略图、文章第一张缩略图、文章附件第一张图、文章随机图、文章随机图加速

typecho 获取当前时间 格式:2020年9月17日 星期四

因为我尝试使用function去封装一个,结果不知道为什么就是提示data这个函数不存在,这个不是php默认的吗,所以只能写成显示语法了。<?php $weekarray=array("日","一","二","三","四","五","六"); echo date("Y年n月j日")." 星期".$weekarray[date("w")];?>

5588 3 0

typecho 判断用户在哪个用户组 用户鉴权

既然开放了注册,那么用户组就是一个问题,我们需要进行鉴权。获取用户处在什么用户组typecho有5个角色,一个是访客,我们通过是否登录来判断。剩下四个为:administrator 管理员editor 编辑contributor 贡献者subscriber 关注者具体权限可以查看官方的这个说明: 用户组<?php echo get_object_vars($this->user)['row']['group'];?>通过这个可以判断当前用户的用户组是什么,管理员就输出administrator鉴权<?php $userGroup=get_object_var...

2419 2 0

typecho 重定向

以前台注册为例,他是一个独立页,所以输入地址是可以直接进入的,但是如果用户已经登录了,按道理,这个页面是不能进的,所以需要重定向。于是乎我们需要在开头加上这么一句话if ($this->user->hasLogin()) { header("Location:".$this->options->siteUrl); exit; }这里以独立页做个演示:<?php /** * register * * @package custom */ if (!defined('__TYPECHO_ROOT_DIR__')) ex...

2274 0 0

typecho 判断是否允许注册

最近应群友要求写一个前台注册,从泽泽那拿到了form,但是有一个问题,就是我要怎么才能知道,这个前台注册是可以用的。所以要判断博客是否开启了允许注册,于是从官方的login页拿到了一个东西,自己改了下,效果一样。不多说,上代码:<?php if($this->options->allowRegister): ?> <a href="<?php $this->options->registerUrl(); ?>"><?php _e('用户注册'); ?></a> <?php ...

1574 0 0

通用一键复制代码的方法

最近想给博客主题增加一个一键复制代码的功能,结果发现highlight.js并不支持一键复制,这就非常的可惜啊。于是百度了下,找到一个不错的例子,根据其例子我自己写了一个通用的方式。效果图安装[hide]需要使用clipboard.js,所以需要js引入这个复制用的库<script type="text/javascript" src="https://cdn.staticfile.org/clipboard.js/2.0.6/clipboard.min.js"></script>引入完毕后我们需要给每个代码块增加一个复制按...

通用一键复制代码的方法

typecho 完美自定义文章里面上一篇和下一篇

百度找了下,都没有很好用的,索性就自己写了,利用官方的那两段代码我们进行自定义创造。[hide]上一篇<?php //上一篇?> <?php ob_start(); $this->thePrev(); $prev = ob_get_contents(); ob_end_clean(); if($prev): ?> <?php preg_match_all('%<a href="(.*?)" title="(.*?)">(.*?)</a>%si...

typecho 完美自定义分页

大人,时代变了!目前typecho最完美的解决方案了,因为百度只能看到固定思维的代码。先看看实际生成的html代码截图,干净到让人窒息完全的自定义,包括给li元素加上class,给a元素加上class,给上一页下一页加上class,去除typecho自带用于表示更多的li标签。甚至里面的内容我也能添加一些文字。废话不多说,上源码:[hide]<nav class="my-5"> <?php ob_start(); $this->pageNav('&laquo;','&raquo;', 1, ''...

typecho 完美自定义分页

typecho 自定义文章分类

默认情况下,官方给的代码<?php $this->category(','); ?>是一个a链接,然后多个则用第一个参数逗号分隔。如果我们不想要a链接,可以给第二个参数传个false,这样输出的就是文本了。<?php $this->category(',',false); ?>即便是这样也不方便,因为我们可能需要对这个a元素添加class,但是官方这个生成的是定死的,不太方便,所以我搞了半天,写了个完全自定义的文章分类。[hide]<?php $categories = $this->categories;?> ...

typecho 获取指定独立页链接

<?php $this->widget('Widget_Contents_Page_List')->to($pages); ?> <?php while ($pages->next()) : ?> <?php if($pages->slug === 'about') :?> <li> <a href="<?php $pages->permalink(); ?>"><?php $pages->title(); ?></a&...

1855 0 0

Typecho 自定义评论模板

百度了好多篇文章,用起来都会报错,花了一天时间研究,终于搞明白自定义评论是怎么做的。typecho的评论模板是comments.php文件,在这个文件,可能会有人在开头加上这句话:<?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; ?>事实上这句话是不需要的,记得删除它。自定义评论的基本结构很多人在看官方的文档时就会迷糊,说了那么多,到底自定义评论的完整结构是啥,这里我就简单列出来,就三个部分。comments.php|---- 自定义评论列表函数|---- 评论表单|---- 评论列表输出其中评论表单和评论列表输出是可以相互更...

typecho 使用CDN后评论过滤插件以及真实ip的问题

由于使用了cdn,所以ip的获取会出现问题,获取不到你的真实ip,这就导致评论过滤插件依据的ip来判断是否机器人啊,这些就会出现问题,所以要调整一下。解决办法就是:在博客的配置文件config.inc.php里面加上这句话://cdn获取真实ip地址 define('__TYPECHO_IP_SOURCE__','HTTP_CLIENT_IP');如果上面无效的话可以使用这句://cdn获取真实ip地址 define('__TYPECHO_IP_SOURCE__','HTTP_X_FORWARDED_FOR');加上后自行测试一下就行了,我使用cdn,加了第一个就解决了问题。

2343 0 0

关于typecho使用cloudflare后台进不去的问题

由于前天被人d我的服务器,被d到无限黑洞,无奈只能搞点防护了,免费的cloudflare我之前就使用过,虽然说有用,但是会有一个问题,就是后台无限刷新,就是进不去。有人说是参数问题,因为后台的登录链接是带参数的,有人说是缓存问题,不要缓存后台就行了,但是事实上这些都没用,毫无效果。[hide]其主要问题就是https的问题。首先我们都会去使用cf带的ssl证书,但是为了https,只能开启强制https了,但是可能是源站并没有强制,所以导致cdn那边卡住了,只能无限刷新就是进不去。解决办法就是在博客的配置文件config.inc.php的开头加上一句强制https//https后台 de...

typecho 博客完美备份还原教程

终于把站点迁移过来了,期间遇到一些问题,很蛋疼,比如,把站点文件夹整个打包备份后,数据库也一并备份,然后还原的时候会遇到一个神奇的bug。你的邮件回复提醒功能再也无法生效了,哪怕你重新设置账户信息。[hide]数据库备份为此我试了好久,发现只有一个办法可以完美解决这问题,就是会比较麻烦一些,但是文章数据,评论,分类信息,标签都可以完美保留。我们的效果就是,博客的设置信息全部丢弃,只保留文章数据,评论,分类信息,标签。所以我们首先要进入数据库管理,找到对应的几个表:accesscommentscontentsfieldsmetasrelationships如果你用的是默认前缀,那么其完整表...

typecho 博客完美备份还原教程

修改Gravatar的头像源为七牛源

之前有一段时间我发现网站功能都加载完了,但是浏览器还是显示转圈,找了半天发现是个人的头像加载太慢了,于是今天特意去找了下有什么快速的源,于是看到了七牛的一个源...真香....233话不多说,上教程首先我们要打开typecho根目录配置文件config.inc.php,在里面加上这句话!/** 更换gravatar头像源*/ define('__TYPECHO_GRAVATAR_PREFIX__', 'https://dn-qiniu-avatar.qbox.me/avatar/'); 完事!如果你自己反代了源,也可以把https这个链接改为你自己的。

2619 2 0
修改Gravatar的头像源为七牛源
加载中