手把手教你写Typecho插件 - 上篇我们通过HelloWorld插件讲解了Typecho插件的基本命名规则,文件结构,已经相关的函数说明。这一部分我们继续使用HelloWorld插件为例教大家如何实现插件的功能。
功能实现
通过查找Typecho官方的《插件接口和功能列表》,可以看到有很多接口可用于插件功能。我们选取error404Handle进行插件功能演练。
- 第一步:在activate函数中注册钩子(关于钩子的知识,请自行百度学习)
public static function activate() {
Typecho_Plugin::factory('Widget_Archive')->error404Handle = array('HelloWorld_Plugin', 'say_hello');
}
代码说明:在Widget_Archive中的error404Handle 的钩子上注册 HelloWorld_Plugin 的 say_hello 函数。当激活的时候就会挂载say_hello 的代码。
- 第二步,实现钩子指定的函数say_hello
public function say_hello($archive,$select){
$archive->setArchiveTitle('Hello world 哈哈');
}
当然,咱们也可以对archive 或者 select进行处理。
第三步,上传到后台,登陆后台激活该插件,观察效果
在浏览器中输入网页地址,然后查看源码,最后得到下面的结果:
完整代码如下:
<?php
/**
* TypechoDev的第一个插件HelloWorld
*
* @package Hello World
* @author 明德居
* @version 1.0.0
* @link https://www.mingdeju.com
*/
class HelloWorld_Plugin implements Typecho_Plugin_Interface {
public static function activate() {
Typecho_Plugin::factory('Widget_Archive')->error404Handle = array('HelloWorld_Plugin', 'say_hello');
}
public static function deactivate(){}
public static function config(Typecho_Widget_Helper_Form $form) {}
public static function personalConfig(Typecho_Widget_Helper_Form $form){}
public static function render() {}
public function say_hello($archive,$select){
$archive->setArchiveTitle('Hello world 哈哈');
}
}
至此,我们已经把Typecho实现自定义插件的步骤和规范讲解完毕,希望对大家有用。