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


Posted in PHP onMay 28, 2015

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

真赶巧,老高最近正在改版百度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插件编写教程(二):写一个新插件

为什么是即插即用?

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

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

本节完。

PHP 相关文章推荐
建立文件交换功能的脚本(三)
Oct 09 PHP
PHP实现MySQL更新记录的代码
Jun 07 PHP
php 特殊字符处理函数
Sep 05 PHP
php 将字符串按大写字母分隔成字符串数组
Apr 30 PHP
php面向对象 字段的声明与使用
Jun 14 PHP
分割GBK中文遭遇乱码的解决方法
Aug 09 PHP
Ubuntu12下编译安装PHP5.3开发环境
Mar 27 PHP
PHP实现简单汉字验证码
Jul 28 PHP
学习php设计模式 php实现原型模式(prototype)
Dec 07 PHP
Yii2.0 模态弹出框+ajax提交表单
May 22 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
Jul 03 PHP
Laravel学习教程之从入口到输出过程详解
Aug 27 PHP
typecho插件编写教程(一):Hello World
May 28 #PHP
php实现的mongodb操作类
May 28 #PHP
PHP编译安装时常见错误解决办法
May 28 #PHP
PHP安装memcached扩展笔记
May 28 #PHP
PHP实现的增强性mhash函数
May 27 #PHP
PHP验证信用卡卡号是否正确函数
May 27 #PHP
PHP的伪随机数与真随机数详解
May 27 #PHP
You might like
探讨如何把session存入数据库
2013/06/07 PHP
PHP采用XML-RPC构造Web Service实例教程
2014/07/16 PHP
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
Javascript this 关键字 详解
2014/10/22 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
JavaScript的RequireJS库入门指南
2015/07/01 Javascript
js带前后翻页的图片切换效果代码分享
2015/09/08 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
原生js实现图片放大缩小计时器效果
2017/01/20 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
纯JS实现轮播图
2017/02/22 Javascript
加载 vue 远程代码的组件实例详解
2017/11/20 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
2018/07/01 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
解决vuex刷新数据消失问题
2020/11/12 Javascript
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python实现通过继承覆盖方法示例
2018/07/02 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
Python List列表对象内置方法实例详解
2019/10/22 Python
Python实现线性判别分析(LDA)的MATLAB方式
2019/12/09 Python
Tensorflow 多线程与多进程数据加载实例
2020/02/05 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
2020/08/11 Python
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
Bluebella德国官网:英国性感内衣和睡衣品牌
2019/11/08 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
法学个人求职信范文
2014/01/27 职场文书
中学教师个人总结
2015/02/10 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
MySQL索引失效的典型案例
2021/06/05 MySQL
嵌入式Redis服务器在Spring Boot测试中的使用教程
2021/07/21 Redis