当前位置: 首页 > 编程笔记 >

typecho插件编写教程(二):写一个新插件

汪文光
2023-03-14
本文向大家介绍typecho插件编写教程(二):写一个新插件,包括了typecho插件编写教程(二):写一个新插件的使用技巧和注意事项,需要的朋友参考一下

第一节我们了解了一个插件的基本构成,下面我们需要一个实例练习巩固。

真赶巧,老高最近正在改版百度sitemap提交插件for typecho,下面和老高一起改版吧!

准备

不知道大家用过WP版的百度结构化插件没?老高就是研究了那个插件,观察其API,然后就写出了typecho版的。

为什么要改版呢?

百度站长最近推出新的接口,使用起来更简单,工作量不算大,索性就改改吧!

新版插件需要实现哪些功能?

1.文章实时推送
2.推送历史数据
3.站点地图

接口调用地址(API)在哪儿?

百度站长后台,PHP接口实例


$urls = array(

    'http://www.example.com/1.html',

    'http://www.example.com/2.html',

);

$api = 'http://data.zz.baidu.com/urls?site=www.phpgao.com&token=你的准入密钥';

$ch = curl_init();

$options =  array(

    CURLOPT_URL => $api,

    CURLOPT_POST => true,

    CURLOPT_RETURNTRANSFER => true,

    CURLOPT_POSTFIELDS => implode("\n", $urls),

    CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),

);

curl_setopt_array($ch, $options);

$result = curl_exec($ch);

echo $result;

开始动手

让老高先把上一节HELLO_WORLD插件的代码盗版一下,删除掉所有注释,添加自己的信息。


if (!defined('__TYPECHO_ROOT_DIR__')) exit;

/**

 * 百度结构化插件教程版

 *

 * @package BaiduSubmitTest

 * @author  老高

 * @version 0.4

 * @link http://www.phpgao.com/typecho_plugin_baidusubmit.html

 */

class BaiduSubmitTest_Plugin implements Typecho_Plugin_Interface

{

    public static function activate(){}

    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(){} }

以上代码老高起了个名字叫裸插件,意思是啥都干不了的插件,每次写插件的时候老高都会准备一个裸插件。

我们将其放在usr/plugins/BaiduSubmitTest/Plugin.php

立即去后台插件处,如图

为什么是即插即用?

因为我们没有实现插件的方法,所以无法启用。

下一节我们让我们的插件变的丰满起来!

本节完。

 类似资料:
  • 本文向大家介绍typecho插件编写教程(六):调用接口,包括了typecho插件编写教程(六):调用接口的使用技巧和注意事项,需要的朋友参考一下 此篇我们开始调用接口,我们在插件类中新定义一个方法,起名为send_post,在方法中我们通过系统配置获取接口调用地址。 百度给的例子中使用了php的CURL,更高级的使用方法可以学习PHP_cURL初始化和执行方法 下面我们结合一下百度站长提供的代码

  • gitbook-plugin-write.md 官网:https://haomo-tech.com 作者:毫末科技 邮箱:hxg@haomo-studio.com

  • 我试图创建Flutter桌面应用程序,可以访问桌面上的网络摄像头(Windows/Linux)。似乎没有Flutter插件支持桌面摄像头。是否有关于如何在Flutter中为Linux/Windows编写插件的文档或教程?

  • 现在你已经熟悉了 Babel 的所有基础知识了,让我们把这些知识和插件的 API融合在一起来编写第一个 Babel 插件吧。 先从一个接收了当前babel对象作为参数的 function 开始。 export default function(babel) { // plugin contents } 由于你将会经常这样使用,所以直接取出 babel.types 会更方便:(译注:这是 ES2

  • 构思插件的功能 import BScroll from '@better-scroll/core' import MyPlugin from '@better-scroll/my-plugin' BScroll.use(MyPlugin) const bs = new BScroll('.wrapper', { myPlugin: { scrollText:

  • 前面已经提过在运行 logstash 的时候,可以通过 --pluginpath 参数来加载自己写的插件。那么,插件又该怎么写呢? 插件格式 一个标准的 logstash 输入插件格式如下: require 'logstash/namespace' require 'logstash/inputs/base' class LogStash::Inputs::MyPlugin < LogStash:

  • Plugins can be either loaded by Smarty automatically from the filesystem or they can be registered at runtime via one of the register_* API functions. They can also be unregistered by using unregister

  • 当写作《插件开发全攻略》系列文章的时候,我想首先罗列一些为什么WordPress 用户想要编写一个WordPress 插件的理由是有好处的。 下面罗列了为什么一个WordPress 用户应该考虑编写一个WordPress 插件的七个理由。 你喜欢一个插件的创意但是不喜欢这个插件的实现方式 无论是在Weblog Tools Collection 还是在官方的WordPress 插件目录或者WordP