Hi!请登陆

手把手教你写Typecho插件 – 功能实现

2020-10-17 78 10/17

手把手教你写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进行处理。

第三步,上传到后台,登陆后台激活该插件,观察效果

在浏览器中输入网页地址,然后查看源码,最后得到下面的结果:

手把手教你写Typecho插件 - 功能实现

完整代码如下:

<?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实现自定义插件的步骤和规范讲解完毕,希望对大家有用。

相关推荐