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

admin 2019-09-04 AM 1010℃ 0条

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

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

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

941358042.jpg

完整代码如下:

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

标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~