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 相关文章推荐
一个连接两个不同MYSQL数据库的PHP程序
Oct 09 PHP
PHP文件下载类
Dec 06 PHP
在Windows系统上安装PHP运行环境文字教程
Jul 19 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Dec 29 PHP
PHP操作mysql函数详解,mysql和php交互函数
May 19 PHP
利用PHP+JS实现搜索自动提示(实例)
Jun 09 PHP
PHP连接操作access数据库实例
Mar 30 PHP
PHP使用mysqldump命令导出数据库
Apr 14 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
Jan 15 PHP
PHP实现将MySQL重复ID二维数组重组为三维数组的方法
Aug 01 PHP
PHP中静态变量的使用方法实例分析
Dec 01 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 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获取服务器端信息的方法
2014/11/28 PHP
ThinkPHP中__initialize()和类的构造函数__construct()用法分析
2014/11/29 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
JavaScript DOM学习第四章 getElementByTagNames
2010/02/19 Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
2010/06/05 Javascript
JavaScript中“过于”犀利地for/in循环使用示例
2013/10/22 Javascript
使用AngularJS 应用访问 Android 手机的图片库
2015/03/24 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
jQuery实现的淡入淡出二级菜单效果代码
2015/09/15 Javascript
JavaScript原型及原型链终极详解
2016/01/04 Javascript
jQuery实现摸拟alert提示框
2016/05/22 Javascript
AngularJS框架的ng-app指令与自动加载实现方法分析
2017/01/04 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
JavaScript运动框架 多值运动(四)
2017/05/18 Javascript
Vue.js中的图片引用路径的方式
2017/07/28 Javascript
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
探究python中open函数的使用
2016/03/01 Python
Python多线程扫描端口代码示例
2018/02/09 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
python傅里叶变换FFT绘制频谱图
2019/07/19 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
Python接口测试结果集实现封装比较
2020/05/01 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
python 6种方法实现单例模式
2020/12/15 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
CSS3 制作绽放的莲花采用效果叠加实现
2013/01/31 HTML / CSS
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
房地产活动策划方案
2014/05/14 职场文书
企业承诺书格式
2014/05/21 职场文书
国际政治学专业推荐信
2014/09/26 职场文书
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript
Nginx+Tomcat负载均衡多实例详解
2022/04/11 Servers
Python测试框架pytest高阶用法全面详解
2022/06/01 Python