如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

苏南大叔,这几天根据自己的需求,也写了typecho插件了。总结了几点。有了这几点。貌似也许不用官方的wiki,你也能自己写插件了。

在typecho的source代码里面查找关键词“pluginHandle()”,然后你就可以看到,所有的可以在插件里面进行控制的地方啦。是不是非常清晰明了。比如:
varWidgetArchive.php 里面有个

 $allows = $this->pluginHandle()->headerOptions($allows, $this); 

在插件里面就是这么写的:

 public static function activate() { Typecho_Plugin::factory('Widget_Archive')->headerOptions = array(__CLASS__, 'headerOptions'); } public static function headerOptions($allows, $that) { //去除默认输出的顶部恶心的js $myallows = [ "description" => mb_substr($allows["description"], 0, 80), "commentReply" => "", "antiSpam" => "" ]; return array_merge($allows, $myallows); } 

当然了在theme里面也可以主动调用插件里面的函数。比如:

theme里面这么写的:

 SNSEO_Plugin::randomArticles(); 

plugin里面是这么写的:

 public static function randomArticles() {} 

涉及到数据库读写的时候,是这么写的:

 $db = Typecho_Db::get(); $sql = $db->select()->from('table.contents') ->where('status = ?', 'publish') ->where('type = ?', 'post') ->where('created <= unix_timestamp(now())', 'post') //添加这一句避免未达到时间的文章提前曝光 ->limit($defaults['number']) ->order('RAND()'); $result = $db->fetchAll($sql); 

除了一个db对象写法不一样外,其它的写法和我们常见的各种库的写法高度一致。所以也不会有啥陌生的。

最后贴上几个百度到的貌似还不错的资源站。以后可以过去翻翻看的。
http://t.160.me/
https://www.typechodev.com/

 【源码】代码片段及相关软件点此获取

 【typecho】秘籍文章入口,仅传授于有缘之人   typecho

本站的忠实读者小伙伴,正在阅读下面这些文章:

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
欢迎指正文字或逻辑错误,将会择优在文末列出您的信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!