【公告】
主题第四弹已更新
免费下载,搜索Typecho即可
生命的意义,在于创造和奉献。
【原创】Typecho文章导航插件——猜你喜欢

【原创】Typecho文章导航插件——猜你喜欢

WuweiNav - 文章导航插件一个优雅的文章导航插件,为您的博客添加"猜你喜欢"模块。功能特点三种精美风格:默认风格、简约风格、现代风格三种悬停效果:上浮、缩放、发光自适应深色模式响应式设计,完美支持移动端可自定义显示数量和排序方式智能缓存机制,提升加载性能安装方法下载本插件将插件上传到 /usr/plugins/ 目录下后台启用插件使用说明基本设置在插件设置面板中,您可以配置以下选项:模块标题:自定义显示的标题文字显示数量:选择显示 4/6/8 篇文章排序方式:发布时间随机显示访问量显示风格:默认风格:经典简洁设计简约风格:极简扁平风格现代风格:玻璃拟态设计悬停效果:上浮效果缩放效果发光效果无效果风格说明默认风格简洁优雅的卡片设计左侧边框装饰圆点标记文章简约风格扁平化设计无边框和阴影下划线分隔极简视觉效果现代风格玻璃拟态设计渐变色元素精致的动画效果居中标题设计兼容性支持主流浏览器:Chrome、Firefox、Safari、Edge支持移动端设备支持高分辨率屏幕支持折叠屏设备性能优化使用缓存机制提升加载速度优化 CSS 动画性能针对不同设备进行适配支持浏览器特性回退更新日志1.0.0初始版本发布支持三种风格切换添加悬停效果支持深色模式优化移动端显示作者作者:吴畏的博客博客:https://8ww.fun致谢感谢所有使用本插件的用户。[secret]附件:WuweiNav.7z[/secret]
插件,Typecho 11-17
Typecho 插件作品目录,不断更新中。2024.11.14

Typecho 插件作品目录,不断更新中。2024.11.14

本次更新时间:2024.11.14以下内容转载自—Github 名称 简介 版本 作者 zip包 AMP 生成AMP/MIP移动标准页面插件 0.7.6.1 Holmesian 福尔摩斯 Download 下载 AjaxComments Ajax评论 嵌套评论Ajax异步提交效果插件 1.2.0 Byends, Willin Kan 拜恩斯,阚薇琳 Download 下载 AbbrSlug 多种算法生成数字文章缩略名插件 1.0.0 羽叶 Download 下载 AllowIp 允许 Ip Typecho可访问后台IP白名单插件 1.0.1 Fuzqing 福青 Download 下载 Announcement 公告 仿Emlog博客悬浮式公告栏插件 1.0.0 skylzl 斯凯兹尔 Download 下载 Another-Like 另一个类似 基于Like动画美化点赞按钮插件 1.0.0 idealclover 理想三叶草 Download 下载 AntiSpam 防垃圾邮件 经典反垃圾评论机器人陷阱插件 1.0.3 Willin Kan 阚威林 Download 下载 AppStore 应用商店 Go脚本服务端搭配应用商店插件 2.0.0 chekun 车昆 N/A 不适用 ArticleList 文章列表 热评/随机文章列表插件(可缓存) 1.1.1 DEFE Special 特殊 ArticleTemplate ArticleTemplate (文章模板) Typecho定制文章类型字段插件 1.0.0 benzBrake 奔驰制动器 Download 下载 At 在 @链接评论回复与邮件提醒插件 0.1.1 公子 Download 下载 Attachment 附件 附件下载美化计数(搭配Stat)插件 1.0.2 羽中, Hanny Download 下载 AudioPlayer 音频播放器 可定制配色伸缩音乐播放器插件 1.2.6 羽中 Download 下载 AutoBackup 自动备份 数据库定时备份至邮箱插件 1.3.2 泽泽 Download 下载 AutoLaTeX LaTeX公式两种模式自动渲染插件 0.1.0 bLue 蓝 Download 下载 AutoSlug AutoSlug 系列 文章缩略名用翻译API生成插件 2.1.1 ShingChi ShingChi (上海) Download 下载 AutoTags 自动标记 文章内容解析自动生成标签插件 1.0.0 DT27 Download 下载 Avatars 化身 评论头像墙排行插件(支持缓存) 1.2.5 羽中 Download 下载 BackToTop 返回页首 三款萌娘点击返回顶部按钮插件 1.0 夏目贵志 Download 下载 CatClaw 猫爪 影视[一]二号模板免登录采集插件 1.8.1 jrotty 杰罗蒂 Download 下载 CateFilter 卡特过滤器 首页过滤指定分类文章隐藏插件 1.2.4 Rakiy 拉基 Download 下载 ChangyanCallback 畅言回调 搜狐畅言社会化评论回推用插件 1.0.0 mrgeneral 将军先生 Download 下载 changyandandian 是畅岩丹迪 搜狐畅言单点登录插件 1.0.0 泽泽社长 Download 下载 Ckeditor4Typecho CKEditor4所见即所得编辑器插件 1.0.0 zhulin3141 竹林3141 Download 下载 CodeMirror 代码镜像 主题外观编辑器内代码高亮插件 1.0.0 zhulin3141 竹林3141 Download 下载 CodeStyle 代码样式 HighlightJs高亮插件(MD带行号) 0.8.0 hongweipeng 洪伟鹏 Download 下载 CommentFilter CommentFilter (注释过滤器) 评论昵称/链接/内容/IP过滤插件 1.2.1 jrotty,ghostry,Hanny jrotty,鬼魂,Hanny Download 下载 CommentPush 评论推送微信QQ钉钉邮箱插件 1.7.1 gaobinzhan,奥秘Sir 高宾战,神秘的 Sir Download 下载 CommentToMail 发布回复评论邮件自动提醒插件 2.0.1 Byends, DEFE Byends, DEFE Download 下载 CommentNotifier 如何通知 评论邮件提醒插件要求Typecho1.2.0版本及以上 1.4.3 泽泽社长 Download 下载 ContentIndex 内容索引 自动生成美化版文章目录树插件 1.0.0 laobubu 老步步 Download 下载 Contribute 贡献 前台免注册投稿及审查发布插件 1.0.0 ShingChi ShingChi (上海) Special 特殊 CosForTypecho Typecho用腾讯云COS存储插件 1.0.1 Charmeryl 查梅丽尔 Download 下载 CSDN 将CSDN博文迁移至Typecho插件 1.0.0 MDY Download 下载 CustomRSS 自定义 RSS Typecho生成rss.xml的RSS订阅 1.0.1 蓝河 Download 下载 DbManager Mysql数据库导入导出优化插件 2.0.1 ShingChi ShingChi (上海) Download 下载 DevTool 开发工具 扩展开发常用数据查看测试插件 1.0.0 zhulin3141 竹林3141 Download 下载 DownloadFile 下载文件 附件下载与上传名保持一致插件 1.0.0 DT27 Download 下载 DynamicLines DynamicLines 系列 (娱乐向)动态蛛网背景效果插件 1.0.0 Mario 马里奥 Download 下载 Editor 编辑 器 简明清爽Markdown编辑器插件 1.0.2 公子 Download 下载 EditorMD 编辑MD 豪华全能Markdown编辑器插件 1.4.0 DT27 Download 下载 EmlogToTypecho Emlog数据库导入到Typecho插件 1.0.0 ShingChi ShingChi (上海) Download 下载 GAuthenticator Google两步验证插件(带二维码) 0.0.6 WeiCN WeiCN 公司 Download 下载 GHbutton GH按钮 GitHub项目或用户功能按钮插件 1.0.4 羽中 Download 下载 GeeTest GeeTest 测试 经典极验证拖拽评论验证码插件 1.0.1 啸傲居士 Download 下载 GithubCard GithubCard 卡 GitHub项目或用户卡片挂件插件 1.0.0 chekun 车昆 Download 下载 GithubWidgetUser GithubWidget用户 GitHub用户名片式展示挂件插件 0.2.0 hongweipeng 洪伟鹏 Download 下载 GoLinks GoLinks 链接 自定义外链转换为内链跳转插件 0.3.0 DEFE Download 下载 GoodLuck 好运 手气不错链接跳转随机文章插件 1.0.2 Ryan 莱恩 Download 下载 GoogleAnalytics 谷歌分析 异步加载版Google Analytics插件 1.0.0 WeiCN WeiCN 公司 Download 下载 GoogleCodePrettify 谷歌代码美化 谷歌Prettify代码高亮插件(MD版) 2.0.0 公子 Download 下载 GravatarCache Gravatar头像自动本地缓存插件 2.0.2 Byends 旁路 Special 特殊 Hermit 隐士 虾米音乐SM2列表型播放器插件 1.3.1 mufeng 牟峰 Download 下载 HighlightSearchKeywords 高亮外部或站内搜索关键字插件 0.1.3 羽中, gouki Download 下载 HighSlide 高滑梯 自定义图片弹窗+页面相册插件 1.4.7 羽中 Download 下载 Html2Text HTML2文本 Html代码转Markdown格式插件 0.1.0 冰剑 Download 下载 IQapTcha 评论滑动解锁验证与过滤插件 1.1.2 Byends 旁路 Download 下载 JSON 以Json格式输出博客数据API插件 1.1 姬长信,SangSir,公子 Download 下载 JWPlayer JWPlayer 播放器 Html5流媒体播放器Jwplayer插件 1.0.9 羽中 Download 下载 JustFeed 文章Feed尾部添加定制信息插件 0.1.2 eallion, jKey eallion, jKey Download 下载 Keywords 关键字 文章指定关键词自动加链接插件 1.0.9 羽中 Download 下载 LREditor Markdown编辑器左右预览插件 0.0.4 公子 Download 下载 Like 喜欢 Typecho文章点赞排行统计插件 1.0.1 skylzl 斯凯兹尔 Download 下载 Links 链接 Typecho友情链接数据管理插件 1.2.3 懵仙兔兔, Hanny Download 下载 LoginDesigner 登录设计师 Typecho注册/登录界面美化插件 1.3.0 泽泽社长 Download 下载 LoveKKComment 评论邮件通知与密码找回插件 1.0.6 康粑粑 Download 下载 LoveKKWeiBo 爱KKWeiBo 用新浪微博作附件上传图床插件 1.0.1 康粑粑 Download 下载 MagikeEditor 魔吉客编辑器 Magike移植Html源码编辑器插件 1.1.1 羽中, Hanny Download 下载 MarkdownParse Markdown解析 Markdown解析(CommonMark+GFM+MathJax+Mermaid+目录) Markdown解析(CommonMark+GFM+MathJax+Mermaid+目录) 2.0.0 mrgeneral 将军先生 Download 下载 Memos 备忘录 Memos列表读取插件 0.1.0 fengqi 风骐 Download 下载 MenuTree 菜单树 代码嵌入式文章内容目录树插件 0.1.2 BeaconFire,Melon BeaconFire,Melon Download 下载 MenuTree 菜单树 右侧悬浮式文章内容目录树插件 0.8.1 hongweipeng 洪伟鹏 Download 下载 MostCache Mysql/SAE下Memcache缓存插件 1.1.1 skylzl,WeiCN skylzl,WeiCN Download 下载 MyPlayer 我的播放器 万能播放器视频站链接转换插件 1.1.3 perichr 佩里赫 Download 下载 MyTagCloud 我的标签云 Typecho自定义标签云效果插件 1.0.0 Ma Yanlong 但燕龙 Download 下载 NavMenu 导航菜单 Typecho自定义插件 1.1.1 Ryan,merdan Ryan, 梅尔丹 Download 下载 Ncache Ncache的 Nginx开启fastcgi_cache缓存插件 1.1 WeiCN WeiCN 公司 Special 特殊 OssForTypecho 阿里云OSS插件(流上传+缩略图) 1.0.2 权那他, Charmeryl Download 下载 Passport 护照 注册用户密码邮件找回功能插件 1.0.1 胖蒜网,ShingChi Download 下载 PasteImage 粘贴图像 编辑器粘贴图片时自动上传插件 1.0.0 qing 青 Download 下载 PostsCategoryChange 帖子类别更改 Typecho文章修改分类/状态插件 0.0.4 Fuzqing 福青 Download 下载 PostRating 后评分 Typecho文章星级评分管理插件 1.1.0 wuwovr, Willin Kan wuwovr, 阚阇 Download 下载 Prism 棱镜 经典Prism代码高亮插件(MD版) 1.0.2 冰剑 Download 下载 QNUpload 经典版(PHP5.2-5.6)七牛附件插件 1.3.1 rakiy 拉基 Download 下载 QiniuFile Qiniu文件 新七牛附件插件(自定路径+截图) 1.3.3 LiCxi, 冰剑, abelyao LiCxi, 冰剑, abelyao Download 下载 RandomThumbnail RandomThumbnail (随机缩略图) 随机图片挂件插件(自定义模板) 2.0.0 LittleJake 小杰克 Download 下载 Reposidget GitHub项目信息与内容展示插件 1.0.0 西秦公子 Download 下载 RewriteRule 重写规则 文章或页面地址重定向跳转插件 1.0.0 laobubu 老步步 Download 下载 Rdog 注册机制优化/发文自动审核插件 1.6.0 泽泽 Download 下载 RoutesHelper 路由助手 Typecho路由信息显示修改插件 1.0.3 doudou 唐 Download 下载 SCS 系统附件用新浪云存储SCS插件 1.1.1 vfhky Download 下载 Sinauth 西诺特 新浪用户授权注册帐号登录插件 1.0.0 Beta 1.0.0 测试版 jimmy chaw 周志明 Download 下载 Sitemap 网站地图 动态生成Xml标准网站地图插件 1.0.5 迷你日志, Hanny Download 下载 SlantedExtend 倾斜延伸 Slanted主题专用自定义字段插件 1.0.0 DT27 Special 特殊 SlimBox2 超薄盒子2 轻量级jQuery图片灯箱弹窗插件 1.0.7 Ryan, 冰剑 Download 下载 Smilies 笑脸 Typecho定制图片表情功能插件 1.1.3 羽中, Willin Kan 羽中, Willin Kan Download 下载 Snowstorm 暴风雪 (娱乐向)动态飘雪背景效果插件 1.0.1 阳光 Download 下载 Soso 索索 Typecho搜索过滤/限制/增强插件 1.2.2 泽泽社长 Download 下载 SplitArchivePage 拆分存档页面 Typecho文章应用分页效果插件 0.1.7 Noisky & gouki Download 下载 Stat 统计 文章浏览数排行插件(支持附件) 1.0.4 羽中, Jozhn, Hanny 羽中, Jozhn, Hanny Download 下载 Sticky 粘 Typecho首页/分类文章置顶插件 1.0.1 Ryan, Willin Kan 阚瑞安 Download 下载 Subscriber 订户 指定文章/内容登录会员可见插件 1.0.0beta 1.0.0 测试版 羽中 Download 下载 SyncPost 同步发布 新浪腾讯微博豆瓣更新推送插件 1.0.0 冰剑 N/A 不适用 TEReplace 特雷普斯 SQL替换指定内容标题字段插件 1.3.0 泽泽 Download 下载 TeKit 模板用文章或评论数据输出插件 2.0.0 冰剑 Download 下载 tagshelper tags帮助程序 发布文章列出已用标签供点选插件 1.1 泽泽社长 Download 下载 TeStore TeStore 商店 GitHub表格解析版插件仓库插件 1.1.5 羽中, zhulin3141 羽中, zhulin3141 Download 下载 ThemeDemo 主题演示 双模式导航条主题外观演示插件 1.2.1 ShingChi, doudou Shingchi, Daudou (沙辛池, 道杜) Download 下载 Tinyfader Typecho简易首页图片轮播插件 1.0.0 Willin Kan 阚威林 Download 下载 Titleshow 标题show Typecho加密文章显示标题插件 1.1.3 泽泽 Download 下载 TopTop 顶部 卡通吊绳点击返回顶部按钮插件 1.0.0 Heeeepin 嘻嘻 Download 下载 Typembed Typembed 字体 常见视频站链接转为播放器插件 1.3.0 Fengzi 丰子 Download 下载 Ueditor 编辑器 百度贴吧可视编辑器Ueditor插件 1.0.0 zhulin3141 竹林3141 Download 下载 Ugauka 乌高卡 (娱乐向)二次元伪春菜挂件插件 1.0.0 Kunr 昆尔 Download 下载 Update 更新 Typecho一键升级至开发版插件 0.0.3 公子 Download 下载 UpdateAssistant 自动升级系统为正式/开发版插件 1.0.1 mrgeneral 将军先生 Download 下载 UploadPlugin 上传插件 上传zip自动安装插件/主题插件 1.1.3 DEFE Download 下载 UpyunFile Upyun文件 Typecho附件用又拍云存储插件 1.0.4 SSpirits,Ryan,codesee SSpirits,Ryan,codesee Download 下载 UserSign 用户签到 为博客用户添加个性签名档插件 0.0.1 hmoe Special 特殊 Version 版本 文章页面可恢复多历史版本插件 1.3 innc11 INNC11 餐厅 Download 下载 Views 视图 Typecho文章浏览计数排行插件 1.0.1 Willin Kan 阚威林 Download 下载 Watermark 水印 文章图片自动添加定制水印插件 1.2.0 DEFE Download 下载 WeChatHelper 微信助手 微信公众号功能自定义集成插件 2.2.1 冰剑 Download 下载 WeChatShare 微信分享 定制文章微信/QQ分享链接插件 1.0.6 Fuzqing 福青 Download 下载 WeiboSync 微博同步 博客文章更新推送新浪微博插件 1.0.0 vfhky Special 特殊 XiaMiPlayer 夏米播放器 虾米音乐jPlayer极简播放器插件 3.1.4 公子 Download 下载 YoduBGM 尤杜BGM 迷你按钮型BGM音乐播放器插件 1.7.0 Jrotty Download 下载 YoduPlayer Yodu播放器 悬浮式音乐播放器插件(支持Pjax) 2.4.6 Jrotty Download 下载 Zan 赞 自定义字段输出文章点赞数插件 1.0.0 冰剑 Download 下载 alexarank 亚历克萨兰克 在主题模板中输出Alexa排名插件 1.0 Jrotty Download 下载 reCAPTCHA reCAPTCHA 验证码 谷歌reCAPTCHA点击验证码插件 0.0.1 啸傲居士 Download 下载 reCAPTCHAv3 reCAPTCHAv3 认证 基于reCAPTCHAv3版验证码插件 0.0.2 D-Bood D-布德  
插件,Typecho 11-14
Typecho插件开发手册

Typecho插件开发手册

插件的基本结构在 Typecho 中,插件通常是一个独立的 PHP 文件,默认放置在usr/plugins/目录下。插件文件名即为插件名,插件类名也应与文件名相同。插件必须实现 Typecho_Plugin_Interface 接口。 基本结构: <?php if (!defined('__TYPECHO_ROOT_DIR__')) exit; /** * 插件的描述信息 * * @package PluginName */ class PluginName_Plugin implements Typecho_Plugin_Interface { // 插件激活方法 public static function activate() {} // 插件停用方法 public static function deactivate() {} // 插件配置面板 public static function config(Typecho_Widget_Helper_Form $form) {} // 个人用户的配置面板 public static function personalConfig(Typecho_Widget_Helper_Form $form) {} // 实现的插件功能方法 // ... }说明: Typecho_Plugin_Interface:插件类必须实现该接口,包含 activate、deactivate、config、personalConfig 四个方法。 activate:插件激活时调用,用于注册插件方法、初始化数据等。 deactivate:插件停用时调用,用于清理数据、注销插件方法等。 config:插件的配置界面,用于在后台展示插件的设置选项。 personalConfig:针对个人用户的配置界面。 激活插件在 activate 方法中,可以进行以下操作: 注册插件方法:使用 Typecho_Plugin::factory 注册插件的方法到指定的 Hook Point。 创建数据库表:如果插件需要额外的数据表,可以在激活时创建。 初始化数据:初始化插件所需的数据或配置。 public static function activate() { // 注册插件方法到 Hook Point Typecho_Plugin::factory('Widget_Archive')->beforeRender = array('PluginName_Plugin', 'beforeRender'); // 返回激活成功的信息 return _t('插件已激活'); } 停用插件在 deactivate 方法中,可以进行以下操作: 注销插件方法:清理注册的插件方法(Typecho 会自动处理)。 删除数据库表:如果插件创建了额外的数据表,可以选择在停用时删除。 清理数据:清理插件的配置信息或缓存。 定义插件的配置界面在 config 方法中定义插件的配置选项。 public static function config(Typecho_Widget_Helper_Form $form) { // 添加一个文本框 $text = new Typecho_Widget_Helper_Form_Element_Text('text', NULL, '默认值', _t('文本框标签'), _t('文本框提示')); $form->addInput($text); // 添加一个单选框 $radio = new Typecho_Widget_Helper_Form_Element_Radio('radio', array('1' => '选项1', '2' => '选项2'), '1', _t('单选框标签')); $form->addInput($radio); // 添加一个复选框 $checkbox = new Typecho_Widget_Helper_Form_Element_Checkbox('checkbox', array('1' => '选项1', '2' => '选项2'), NULL, _t('复选框标签')); $form->addInput($checkbox); }说明: 使用 Typecho_Widget_Helper_Form_Element_* 类来创建不同类型的表单元素。 调用 $form->addInput() 方法将元素添加到配置界面。 处理插件的用户配置在插件的方法中,可以通过 Helper::options()->plugin('PluginName') 获取用户的配置信息。 public static function someMethod() { $options = Helper::options()->plugin('PluginName'); $textValue = $options->text; // 获取文本框的值 // ... }说明: Helper::options():获取全局的配置对象。 plugin('PluginName'):获取指定插件的配置信息。 注册插件方法(Hook Point)在 activate 方法中,使用 Typecho_Plugin::factory 注册插件的方法到指定的 Hook Point。 public static function activate() { Typecho_Plugin::factory('Widget_Archive')->beforeRender = array('PluginName_Plugin', 'beforeRender'); }说明: 具体插入点可以参考文章后半段,有专门介绍各插入点的作用及位置 Typecho_Plugin::factory('类名')->方法名:指定要拦截的类和方法(Hook Point)。 array('PluginName_Plugin', '方法名'):插件的方法回调。 定义自定义路由如果插件需要自定义 URL 路由,可以在 activate 方法中定义。 public static function activate() { // 添加自定义路由 Helper::addRoute('plugin_route', '/plugin/route/', 'PluginName_Action', 'actionMethod'); } public static function deactivate() { // 删除自定义路由 Helper::removeRoute('plugin_route'); }Helper::addRoute:添加自定义路由。 第一个参数:路由名称。 第二个参数:路由规则(URL 模式)。 第三个参数:处理该路由的类名。 第四个参数:处理方法。 Helper::removeRoute:删除自定义路由。加载插件的类和方法如果插件包含多个类或文件,可以通过 require_once 或自动加载的方式引入。 // 在插件的主文件中 require_once 'libs/Helper.php'; // 使用命名空间和自动加载 spl_autoload_register(function ($class) { $prefix = 'PluginName\\'; $base_dir = __DIR__ . '/src/'; $len = strlen($prefix); if (strncmp($prefix, $class, $len) !== 0) { return; } $relative_class = substr($class, $len); $file = $base_dir . str_replace('\\', '/', $relative_class) . '.php'; if (file_exists($file)) { require $file; } }); require_once:直接引入文件。 spl_autoload_register:注册自动加载函数,按照命名空间和目录结构自动加载类。 文件载入与资源管理插件可能需要加载 CSS、JS 文件或其他资源,可以通过以下方式实现。在模板中加载资源: // 在插件的方法中 public static function header() { $cssUrl = Helper::options()->pluginUrl . '/PluginName/assets/style.css'; echo '<link rel="stylesheet" type="text/css" href="' . $cssUrl . '">'; } public static function footer() { $jsUrl = Helper::options()->pluginUrl . '/PluginName/assets/script.js'; echo '<script type="text/javascript" src="' . $jsUrl . '"></script>'; }注册到 Hook Point: public static function activate() { Typecho_Plugin::factory('Widget_Archive')->header = array('PluginName_Plugin', 'header'); Typecho_Plugin::factory('Widget_Archive')->footer = array('PluginName_Plugin', 'footer'); } Helper::options()->pluginUrl:获取插件目录的 URL。 header、footer:在页面的头部和尾部输出内容。 模板的使用与扩展插件可以自定义模板,或者扩展主题的模板功能。在插件目录中创建模板文件: 创建 themes 目录:在插件目录下创建 themes 目录,用于存放模板文件。 编写模板文件:例如,创建 themes/plugin-template.php。 在插件中调用模板: public static function renderTemplate() { $template = __DIR__ . '/themes/plugin-template.php'; if (file_exists($template)) { include $template; } else { echo '模板文件不存在'; } }在路由处理方法中调用: public function actionMethod() { self::renderTemplate(); }完整的插件示例 usr/ └── plugins/ └── HelloWorld/ ├── HelloWorld_Plugin.php ├── Action.php ├── assets/ │ ├── style.css │ └── script.js └── themes/ └── hello.php 钩子(Hook)插入点 在 Typecho 插件开发中,可以通过 Typecho_Plugin::factory('类名')->方法名 的形式来拦截和扩展 Typecho 的核心功能。以下是所有可用的插入位置(Hook Points),按照类名分类,并注明调用的位置及意义。 插入位置的定义方式 插入位置通常是通过以下几种方式定义的: 方法(Method): 在 Typecho 的核心类中,某些方法被定义为插入位置。例如,Widget_Contents_Post_Edit 类中的 insert 方法就是一个插入位置。 插件可以通过 Typecho_Plugin::factory('Widget_Contents_Post_Edit')->insert 来拦截这个方法,并在其中执行自定义代码。 属性(Property): 在 Typecho 的核心类中,某些属性被定义为插入位置。例如,Widget_Contents_Post_Edit 类中的 insert 属性就是一个插入位置。 插件可以通过 Typecho_Plugin::factory('Widget_Contents_Post_Edit')->insert 来拦截这个属性,并在其中执行自定义代码。 示例 假设我们有一个 Widget_Contents_Post_Edit 类,其中定义了一个 insert 方法: class Widget_Contents_Post_Edit extends Typecho_Widget { public function insert() { // 插入文章的逻辑 } } 在插件中,我们可以通过以下方式拦截这个 insert 方法: class XXX_Plugin implements Typecho_Plugin_Interface { public static function activate() { Typecho_Plugin::factory('Widget_Contents_Post_Edit')->insert = array('XXX_Plugin', 'publish'); } public static function publish($post) { // 自定义的插入逻辑 } } 在这个例子中,XXX_Plugin 插件在 Widget_Contents_Post_Edit 类的 insert 方法执行时,会调用 XXX_Plugin::publish 方法来执行自定义的插入逻辑 常见Hooks整理 1. Widget_Contents_Post_Edit insert:在插入文章时触发。 update:在更新文章时触发。 delete:在删除文章时触发。 finishPublish:在文章发布完成后触发。 2. Widget_Contents_Page_Edit insert:在插入页面时触发。 update:在更新页面时触发。 delete:在删除页面时触发。 finishPublish:在页面发布完成后触发。 3. Widget_Comments_Edit insert:在插入评论时触发。 update:在更新评论时触发。 delete:在删除评论时触发。 finishComment:在评论操作完成后触发。 finishDelete:在评论删除后触发。 4. Widget_Users_Edit insert:在创建用户时触发。 update:在更新用户信息时触发。 delete:在删除用户时触发。 finishCreate:在用户创建完成后触发。 finishDelete:在用户删除后触发。 5. Widget_Metas_Category_Edit insert:在创建分类时触发。 update:在更新分类信息时触发。 delete:在删除分类时触发。 finishCreate:在分类创建完成后触发。 6. Widget_Metas_Tag_Edit insert:在创建标签时触发。 update:在更新标签信息时触发。 delete:在删除标签时触发。 finishCreate:在标签创建完成后触发。 7. Widget_Feedback comment:在用户提交评论时触发。 trackback:在接收Trackback时触发。 8. Widget_Register register:在用户注册时触发。 9. Widget_Login loginSucceed:在用户登录成功后触发。 loginFail:在用户登录失败后触发。 10. Widget_Archive beforeRender:在渲染文章内容之前触发。 afterRender:在渲染文章内容之后触发。 beforeOutput:在输出文章内容之前触发。 afterOutput:在输出文章内容之后触发。 handleInit:在 Archive Widget 初始化时触发。 select:在构建内容查询时触发。 11. Widget_Comments beforeRender:在渲染评论列表之前触发。 afterRender:在渲染评论列表之后触发。 12. Widget_Abstract_Contents contentEx:在获取文章完整内容时触发。 excerptEx:在获取文章摘要内容时触发。 filter:在获取内容列表时触发。 13. Widget_Abstract_Comments contentEx:在获取评论内容时触发。 excerptEx:在获取评论摘要时触发。 filter:在获取评论列表时触发。 14. Widget_Abstract_Metas filter:在获取分类或标签列表时触发。 15. Widget_Abstract_Users filter:在获取用户列表时触发。 16. Widget_Abstract_Options filter:在获取系统选项时触发。 17. Widget_Abstract beforeRender:在任何 Widget 渲染之前触发。 afterRender:在任何 Widget 渲染之后触发。 ___construct:在 Widget 初始化时触发。 ___init:在 Widget 初始化完成后触发。 ___execute:在执行 Widget 主逻辑时触发。 18. Typecho_Widget widget:在创建 Widget 实例时触发。 widgetStart:在 Widget 开始执行时触发。 widgetEnd:在 Widget 执行结束时触发。 19. Typecho_Widget_Helper_Form render:在渲染表单之前触发。 20. Typecho_Widget_Helper_Form_Element render:在渲染表单元素之前触发。 21. Typecho_Db query:在执行数据库查询时触发。 fetchAll:在获取查询结果时触发。 22. Typecho_Router router:在路由解析时触发。 dispatch:在路由调度时触发。 23. Typecho_Response redirect:在执行页面重定向时触发。 24. Typecho_Cookie set:在设置 Cookie时触发。 get:在获取 Cookie时触发。 25. Typecho_Feed output:在输出RSS Feed时触发。 26. Typecho init:在系统初始化时触发。 header:在输出页面头部时触发。 footer:在输出页面尾部时触发。 使用方法示例: Typecho_Plugin::factory('Widget_Contents_Post_Edit')->insert = array('YourPlugin_Class', 'yourMethod'); 说明: 插入位置(Hook Point):即可拦截的方法名。 触发时机:在对应的方法执行时触发,允许插件在该时机执行自定义逻辑。 使用场景:插件可以通过这些 Hook Points 实现对 Typecho 功能的扩展和定制,例如在文章发布后发送通知,在用户登录失败后记录日志等。 注意事项: 确保方法存在:请确保您定义的插件类和方法存在且可被调用,避免出现错误。 性能考虑:插件开发时应注意性能,避免阻塞核心功能的执行。 充分测试:某些 Hook Points 可能仅在特定情况下触发,开发时需充分测试。 通过以上整理,您可以清晰地了解 Typecho 插件开发中可用的所有插入位置,以及它们的调用位置和意义,方便在插件中实现所需的功能。 转载 全栈开发技术博客 原文链接:https://www.lvtao.net/dev/typecho-plugin.html 
技巧,Typecho 11-14

网站已运行 71 天 | 共有文章 672 篇 | 累计访问 17272 人次