起因
还记得那年大明河畔的文章丢失吗! 由于我的博客是使用wordpress的,所幸wordpress功能非常强大。 我就在想,如果在我 发布文章的同时 进行文章同步到不同平台(印象笔记有道云等那该多好)。事不宜迟
有什么办法可以实现?
很简单呀,wordpress的插件,我想就能实现我们的梦想。 之前我是开发过wordpress模板的。模板的难度一般,就是在适当的地方用合理的函数进行模板渲染。 重要的是对wordpress提供的内置api函数使用上。
论插件开发
wordpress 插件都存放在wp-content/plugin文件夹内 如何开发一个wordpress插件 看文档我们可以知道 一个标准的wordpress插件需要有一个文件信息头,一个版权协议信息做头部 文件信息头用来做读取插件信息的方式
<?php
/*
Plugin Name: 插件名称
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: 插件的简单描述
Version: 插件版本号, 例如: 1.0
Author: 插件作者
Author URI: http://URI_Of_The_Plugin_Author作者地址
*/
?>
我的这个插件的定位是自己使用。
插件的主要点
- 利用WordPress插件钩子
wordpress 插件钩子有很多的方法供我们使用。在对应的wordpress动作插入我们想要的处理函数是一个很快捷的实现方式
do_action('wordpress插件hookname','functionname')
需要注意的是处理函数接收的是什么值,可能是id可能是一个对象
保存插件信息到数据库
- 使用WordPress的"选项"机制(稍后会有介绍)。这种方式适合储存少量静态的、具有特定名称的数据——这类数据通常是网站所有者在创建插件时设置的一些初始化参数,并且以后很少会进行改动。
- 使用文章元数据(又名自定义域)。这种方式适合保存与个人文章、页面或附件相关的数据。若需要了解更多,请参阅post_meta函数示例,以及与add_post_meta()相关的函数。
- 使用自定义分类。这种方式适合保存那些需要分门别类存放的数据,如用户信息、评论内容以及用户可编辑的数据等,特别适合于当你想要根据某个类型去查看相关的文章和数据的情况。若需要了解更多,请参阅Custom Taxonomies。
- 创建一个新的,自定义的数据库表。这种方式适合保存那些与个人文章、页面或附件无关的,会随着时间逐渐增长的,并且没有特定名称的数据。关于如何使用,你可以阅读Creating Tables with Plugins以获取更多信息。
选项
add_option($name, $value, $deprecated, $autoload);
注意
我们的插件不应该对数据库有过多的读写操作。写入操作往往消耗很大。频繁的读操作,也是极为占用。所以建议是多值一次读取操作修改。
Final
最后我们理一下这个同步文章信息的插件如何做
- 创建一个插件文件
- 规范写入信息头等
- do_action 使用适当的wordpress插件钩子
- 利用选项保存我们的信息(不同平台的开发者api auth值)
- 在对应的钩子函数中使用对应的方法
do_action => 触发函数 ---> 读取保存的开发者api key ===> 调用不同平台api ==> 同步成功
总结
这种方法是一个很简单的使用wordpress插件的方式。(wordpress文章发布hookname publish_post) 也是实现同步文章信息的方法。在不同的平台上同步自己的文章,可以有助于保存文章。 本文更大的思路在于,有时候有些东西想了就等于能做了。 申请各平台的api不用讲解了。