Typecho插件钩子执行优先级
在制作Typecho插件的时候,有的时候要考虑对其他插件的兼容,比如A,B两个插件调用了相同的钩子(插件接口),那么怎么确保谁先执行呢,默认的情况好像就是谁先启动谁就先执行,这样控制权就在用户手里了,这样其实体验很不好,因为用户是最不可控的因素。教程所以就需要插件开发者自行控制下自己的钩子生效优先级,比如下方默认钩子的写法,他没规定优先级所以就默认,默认优先级就是10。Typecho_Plu...
给文章编辑页面实现图片延迟加载功能
文档说明作者的博文大部分是一张图一段话,日常编辑文章时也没有留意到以下情况,直到:偶然编辑多图文章时,发现浏览器的加载图标一直在转圈圈,很好奇地查看控制台,原来这是在同时加载页面中的所有图片,而自己并没有预览文章内容,嗯,于是乎有了这篇文档。使用方法A 涉及文件admin/editor-js.phpB 改造文件作用:给编辑器内容中的图片添加延迟加载功能。打开文件 admin/editor-j...
Typecho超级标签云让每个标签附带一篇文章
忘记在哪里看见这个需求了,花了 3 分钟弄出来。Typecho都迁移到 PHP 7.2 了,我也采用一个比较优雅的办法弄的。代码<?php
class XMetas_Tag_Cloud extends Widget_Metas_Tag_Cloud
{
/**
* 获取关联文章
* @param int $num 文章数量
* @return Wid...
Typecho密码重置
在服务器控制面板中进入phpMyadmin,选择typecho绑定的数据库名。点击数据库前缀_users,找到自己的用户名那行数据,点击编辑,如下图然后在password那行,将数据改为$P$BdpIxNihfozi/TZ5SGfavVZ/AQA2m1.然偶点击执行这样你的密码就重置为了123456。
Typecho判断插件是否激活
做Typecho主题的时候有些地方可能需要用到特定的插件。调用插件前肯定是先判断一下插件是否激活,不然就会导致中断输出了。过程式写法<?php $all = Typecho_Plugin::export();?>
<?php if (array_key_exists('插件名称', $all['activated'])) : ?>...
Typecho为文章增加字数统计和计算阅读时长
有时候看到别人的博客上都有一个当前文章总字数xxxx,阅读时长xx分钟,就想着是不是其实也可以为typecho加一个。看了一下还算简单,因为$this->content(),是echo后的输出,但事实上,你也能访问 $this->content ,于是代码就出来了总字数:<?php echo mb_strlen($this->content);?>,阅读时长:&...
Mysql8降级至Mysql5.7教程
Mysql 5.7 - > 8.0 支持 (低版本到高版本支持)Mysql 8.0 - > 5.7 不支持(高版本到低版本不支持)Mysql8.0的字符集和排序规则较5.7有改动表编码为 utf8mb4_0900_ai_ci排序规则为utf8mb4utf8mb4替换为utf8因此打开.sql文件 使用vscode或者notpad++等软件去全局替换:1,(8.0)utf8mb4_...
Typecho使用Ctrl+Enter快速评论
1.编辑当前主题的comments.php,找到类似这样的两段代码:(不同主题代码不同,找到相似的就可以了)<textarea id="comment" name="text" tabindex="1" class="textarea" ><?php $this->remember(...
Typecho主题实现前台登录
前言前台登录是个很方便的功能,无论是作为个人站点还是多人站点,前台登录都会节省用户时间。代码<form action="<?php $this->options->loginAction()?>" method="post" name="login" rold="form">
...
Typecho 输出所有分类+文章-就像CMS一样
输出分类和文章,制作CMS模板必备/* 循环所有的分类 */
<?php $this->widget('Widget_Metas_Category_List')->to($categories); ?>
<?php while ($categories->next()): ?>
/* 循环当前分类下的文章 */
<?ph...
Typecho判断插件是否激活
做模板的时候有些地方可能需要用到插件。然后需要看一下插件是否启用,就可以用到如下插件:<?php $all = Typecho_Plugin::export();?>
<?php if (array_key_exists('插件名称', $all['activated'])) : ?>
XXX插件已激活
<?php end...
Typecho文章如何按修改时间排序
Typecho文章排序方式修改我们可以通过购买《Order插件》或修改源码的方式,将文章修改成按照发布时间升序或降序排列,或按照文章最后一次修改的时间的升序或降序排列。下文就介绍下修改源码的方式。首先我们打开var/Widget/这个路径的Archive.php文件,在764行左右找到$select->order('table.contents.created', ...
Typecho常用统计
一些常用统计<?php Typecho_Widget::widget('Widget_Stat')->to($stat); ?>
文章总数:<?php $stat->publishedPostsNum() ?>篇
分类总数:<?php $stat->categoriesNum() ?>个
评论总数:<?php $...
Typecho数据库常用api
表创建和删除在Typecho插件开发过程中,往往需要创建自己的表。上文提到Typecho_Db类中的query函数,可用于执行所有sql语句,因此我们使用query()来进行表的创建、修改或者删除。$db= Typecho_Db::get();
$prefix = $db->getPrefix();
$db->query('create table '.$pr...
Typecho神奇的is语法
神奇的is语法typecho可以使用is语法判断很多东西,比如$this->is('index'); //判断首页
$this->is('archive'); //判断archive
$this->is('single'); //判断为阅读页面page+post
$this->is('page...
Typecho给你的编辑器添加字符统计
在主题functions.php文件中加入下面的代码即可,实际就是调用插件接口向文章编辑器页面插入css和js来实现的。Typecho_Plugin::factory('admin/write-post.php')->bottom = array('myyodu', 'one');
Typecho_Plugin::factor...
Typecho解决文章太短描述中暴露短代码的问题
以前还真没有注意这个问题,今天一位朋友测试上一篇文章的相关代码功能时候反馈的问题,这个问题可以说大也可以说不小。如果你的文章只要内容过多超过了网站描述截取的显示就不会出现这个问题,反之太短就会暴露相关自定义的短代码问题(例如短代码回复查看内容,这里就可以看到),如果你也被这个问题烦恼,可以通过下面的方法解决这个问题。问题截图使用说明可以在文章中手动避免这个问题出现那就是在短代码之前使用“&l...
typecho实现文章多个部分内容加密教程
typecho文章虽然自带了加密功能,可是有时候不太人性化,例如我想要显示部分内容,部分内容加密而且多个部分加密的密码不同。多个部分内容加密截图提交密码查看效果截图这篇文章就是为了解决上面提供的方案思路,具体各项细节需要开发者自行在进一步完善(例如添加 cookie,session 等缓存提交的密码实现在一定时间内不用重复输入等,下面的代码为了理解就没有添加)。具体实现代码把下面的代码添加到...
Typecho调用分类列表
使用Widget_Metas_Category_List即可列出所有分类。$obj = $this->widget('Widget_Metas_Category_List');
if($obj->have()){
while($obj->next()){
$obj->name();
... ...
}...
Mysql5.7升级至Mysql8教程
因为我用的是宝塔面板,下文就基于宝塔面板进行说明,其他面板的话也可做参考1,备份数据库备份数据库下载到本地,这样即便折腾过程中出现什么问题,数据也不会丢失。2,切换mysql版本在宝塔软件里面找到mysql点击设置,里面有版本切换的设置,切换至8.0它就会安装mysql8.0了,此时会提示让你先把数据库数据全删掉来进行升级,因为我们备份过了,所以可以放心大胆的删除所有数据,然后再去切换至my...
Typecho读取网站后台设置信息
教程一个简单的窍门教你如何读取后台设置信息,如下图所示我们用浏览器控制台查看页面元素,查看对应input熟悉看name值,网站地址的name值为siteUrl。那么网站地址调用就是<?php $this->options->siteUrl(); ?>或者<?php Helper::options()->siteUrl(); ?>;是不是很简单,想读取...
Typecho根据文章cid获取文章信息
如上图,就是基于这个功能,实现的轮播图,填写了文章cid,获取了文章标题,描述,缩略图和链接。其实这个功能,应该有很多人发过,不过大多都是需要写查询函数的,我呢因为懒,所以经过试验发现了这种不用自己写函数的写法。代码如下代码,其中cid=1就是获取cid为1的文章信息,可以改成你需要获取的文章cid。<?php $ji=Helper::widgetById('Contents...
Typecho让404页面直接返回首页
新建个404.php文件,里面写入下面的代码,然后将该文件放到你启用的这主题文件夹里就可以了。<?php
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
$this->response->redirect($this->options->siteUrl);
?>注意事项:如果你启动了debug模式...
Typecho文章编辑器如何使用html语法
Typecho默认使用的是markdown编辑器,如果想在里面写html标签,简单的直接写就行比如居中这样写就行。<center>你要居中的文章或者图片</center>如果比较复杂的直接写可能不生效,可以使用三个!号就行包裹,如下方代码!!!
你的html内容
!!!其中!!!号单独占一行,这种!!!的语法是Typecho独有的,不是标准markdown语法!