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 相关文章推荐
第十三节 对象串行化 [13]
Oct 09 PHP
PHP 中的一些经验积累
Oct 09 PHP
PHP下几种删除目录的方法总结
Aug 19 PHP
PHP 彩色文字实现代码
Jun 29 PHP
php生成静态页面的简单示例
Apr 17 PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 PHP
最新制作ThinkPHP3.2.3完全开发手册
Nov 23 PHP
php自定义截取中文字符串-utf8版
Feb 27 PHP
CodeIgniter框架验证码类库文件与用法示例
Mar 18 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 PHP
php过滤htmlspecialchars() 函数实现把预定义的字符转换为 HTML 实体用法分析
Jun 25 PHP
laravel config文件配置全局变量的例子
Oct 13 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
url decode problem 解决方法
2011/12/26 PHP
又拍云异步上传实例教程详解
2016/04/19 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
2016/08/01 PHP
讲两件事:1.this指针的用法小探. 2.ie的attachEvent和firefox的addEventListener在事件处理上的区别
2007/04/12 Javascript
7个Javascript地图脚本整理
2009/10/20 Javascript
js中arguments,caller,callee,apply的用法小结
2014/01/28 Javascript
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
2016/11/09 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
初探JavaScript 面向对象(推荐)
2017/09/03 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
2018/04/03 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
Bootstrap实现省市区三级联动(亲测可用)
2019/07/26 Javascript
JavaScript中while循环的基础使用教程
2020/08/11 Javascript
python操作字典类型的常用方法(推荐)
2016/05/16 Python
Python调用C语言的方法【基于ctypes模块】
2018/01/22 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
详解django自定义中间件处理
2018/11/21 Python
pandas ix &iloc &loc的区别
2019/01/10 Python
python实现公司年会抽奖程序
2019/01/22 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
使用JS+CSS3技术:让你的名字动起来
2013/04/27 HTML / CSS
解决CSS3的opacity属性带来的层叠顺序问题
2016/05/09 HTML / CSS
在线服装零售商:SheIn
2016/07/22 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
信号量和自旋锁的区别?如何选择使用?
2015/09/08 面试题
会计电算化个人自我评价
2013/11/17 职场文书
化学学院毕业生自荐信范文
2013/12/17 职场文书
五年后的职业生涯规划
2014/03/04 职场文书
关于教师节的广播稿
2014/09/10 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
2014年全国法制宣传日宣传活动方案
2014/11/02 职场文书
七夕情人节问候语
2015/11/11 职场文书
班主任远程培训研修日志
2015/11/13 职场文书
Python自动化实战之接口请求的实现
2022/05/30 Python