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 相关文章推荐
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
Jun 24 PHP
php中explode的负数limit用法分析
Feb 27 PHP
基于php的CMS中展示文章类实例分析
Jun 18 PHP
YII CLinkPager分页类扩展增加显示共多少页
Jan 29 PHP
Yii控制器中操作视图js的方法
Jul 04 PHP
PHP简单实现数字分页功能示例
Aug 24 PHP
php多线程并发实现方法
Sep 30 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
Jun 07 PHP
PHP基于IMAP收取邮件的方法示例
Aug 07 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
Sep 16 PHP
Yii redis集合的基本使用教程
Jun 14 PHP
php修改word的实例方法
Nov 17 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
PHP面向对象学习笔记之二 生成对象的设计模式
2012/10/06 PHP
zf框架的zend_cache缓存使用方法(zend框架)
2014/03/14 PHP
简单了解PHP编程中数组的指针的使用
2015/11/30 PHP
CI框架实现cookie登陆的方法详解
2016/05/18 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
php 使用redis锁限制并发访问类示例
2016/11/02 PHP
js AspxButton的客户端操作
2009/06/26 Javascript
JS模拟的QQ面板上的多级可展开的菜单
2009/10/10 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
javascript兼容性(实例讲解)
2017/08/15 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
深入理解Vue.js轻量高效的前端组件化方案
2018/12/10 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
vue App.vue中的公共组件改变值触发其他组件或.vue页面监听
2019/05/31 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
vue将data恢复到初始状态 && 重新渲染组件实例
2020/09/04 Javascript
Webpack5正式发布,有哪些新特性
2020/10/12 Javascript
python单链表实现代码实例
2013/11/21 Python
python实现dnspod自动更新dns解析的方法
2014/02/14 Python
Python返回数组/List长度的实例
2018/06/23 Python
python实现将一个数组逆序输出的方法
2018/06/25 Python
Django DRF路由与扩展功能的实现
2020/06/03 Python
python爬取youtube视频的示例代码
2021/03/03 Python
TripAdvisor越南:全球领先的旅游网站
2017/09/21 全球购物
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
2015年十一国庆节演讲稿
2015/03/20 职场文书
酒店收银员岗位职责
2015/04/07 职场文书
民事诉讼代理词
2015/05/25 职场文书
2016幼儿教师自荐信范文
2016/01/28 职场文书
毕业生就业推荐表自我鉴定
2019/06/20 职场文书
pytorch显存一直变大的解决方案
2021/04/08 Python
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js