如何快速给自己的模板增加一个插件?
仔细看一下官方插件HelloWorld的源码,你会发现其中就这么一句话:\Typecho\Plugin::factory('admin/menu.php')->navBar = __CLASS__.'::render';
,然后你搜索admin目录,最终发现调用竟然是:\Typecho\Plugin::factory('admin/menu.php')->navBar()
,于是你就可以知道,最快写插件,而且侵入式不强的插件方法就是类似这样的写法。
例如:
//前台入口只有一个:index.php,所以需要直接这样写
\Typecho\Plugin::factory('index.php')->showSiteName = __CLASS__.'::showSiteName';
在模板中调用:
\Typecho\Plugin::factory('index.php')->showSiteName()
是不是发现自己会写插件了?
而且,它的优点时,只在激活的时候注册一下,不会每次都加载(因为你也不需要每次都加载)。
但如果是用类似\Typecho\Plugin::factory('Widget_Archive')->beforeRender = [new self,'contentExtend'];
这样的方法,只要调用到了Widget\Archive类,几乎都会执行一次,效率就低了。所以应该根据实际情况使用插件