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 相关文章推荐
生成ubuntu自动切换壁纸xml文件的php代码
Jul 17 PHP
基于PHP读取TXT文件向数据库导入海量数据的方法
Apr 23 PHP
PHP对表单提交特殊字符的过滤和处理方法汇总
Feb 18 PHP
php中error与exception的区别及应用
Jul 28 PHP
php中spl_autoload详解
Oct 17 PHP
PHP向浏览器输出内容的4个函数总结
Nov 17 PHP
php使用iconv中文截断问题的解决方法
Feb 11 PHP
PHP将session信息存储到数据库的类实例
Mar 04 PHP
PHP+shell实现多线程的方法
Jul 01 PHP
PHP代码维护,重构变困难的4种原因分析
Jan 25 PHP
php中10个不同等级压缩优化图片操作示例
Nov 14 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
Apr 06 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
基于mysql的论坛(5)
2006/10/09 PHP
PHP版自动生成文章摘要
2008/07/23 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
PHP系列学习之日期函数使用介绍
2012/08/18 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
php微信开发之百度天气预报
2016/11/18 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
document.getElementById方法在Firefox与IE中的区别
2010/05/18 Javascript
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
按下回车键指向下一个位置的一个函数代码
2014/03/10 Javascript
关于JavaScript对象的动态选择及遍历对象
2014/03/10 Javascript
jquery map方法使用示例
2014/04/23 Javascript
JavaScript获取页面上被选中文字的方法技巧
2015/03/13 Javascript
AngularJS 单元测试(一)详解
2016/09/21 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
2016/11/11 Javascript
Bootstrap框架安装使用详解
2017/01/21 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
JS中Promise函数then的奥秘探究
2018/07/30 Javascript
基于JavaScript实现单例模式
2019/10/30 Javascript
vue数据响应式原理知识点总结
2020/02/16 Javascript
[36:05]DOTA2亚洲邀请赛 3.31 小组赛 A组 Liquid vs Optic
2018/04/01 DOTA
Python用模块pytz来转换时区
2016/08/19 Python
对python 自定义协议的方法详解
2019/02/13 Python
python数据抓取3种方法总结
2021/02/07 Python
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
八年级生物教学反思
2014/01/22 职场文书
中国梦演讲稿教师篇
2014/04/23 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
婚内房产协议书范本
2014/10/02 职场文书
2015年服务员工作总结
2015/04/08 职场文书
工会经费申请报告
2015/05/15 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript