5

wordpress插件踩坑

 3 years ago
source link: https://zwkang.com/?p=442
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

还记得那年大明河畔的文章丢失吗!
由于我的博客是使用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作者地址
*/
?>

我的这个插件的定位是自己使用。

插件的主要点

  1. 利用WordPress插件钩子

wordpress 插件钩子有很多的方法供我们使用。在对应的wordpress动作插入我们想要的处理函数是一个很快捷的实现方式

do_action('wordpress插件hookname','functionname')

需要注意的是处理函数接收的是什么值,可能是id可能是一个对象

保存插件信息到数据库

  1. 使用WordPress的"选项"机制(稍后会有介绍)。这种方式适合储存少量静态的、具有特定名称的数据——这类数据通常是网站所有者在创建插件时设置的一些初始化参数,并且以后很少会进行改动。
  2. 使用文章元数据(又名自定义域)。这种方式适合保存与个人文章、页面或附件相关的数据。若需要了解更多,请参阅post_meta函数示例,以及与add_post_meta()相关的函数。
  3. 使用自定义分类。这种方式适合保存那些需要分门别类存放的数据,如用户信息、评论内容以及用户可编辑的数据等,特别适合于当你想要根据某个类型去查看相关的文章和数据的情况。若需要了解更多,请参阅Custom Taxonomies。
  4. 创建一个新的,自定义的数据库表。这种方式适合保存那些与个人文章、页面或附件无关的,会随着时间逐渐增长的,并且没有特定名称的数据。关于如何使用,你可以阅读Creating Tables with Plugins以获取更多信息。
add_option($name, $value, $deprecated, $autoload);

我们的插件不应该对数据库有过多的读写操作。写入操作往往消耗很大。频繁的读操作,也是极为占用。所以建议是多值一次读取操作修改。

Final

最后我们理一下这个同步文章信息的插件如何做

  1. 创建一个插件文件
  2. 规范写入信息头等
  3. do_action 使用适当的wordpress插件钩子
  4. 利用选项保存我们的信息(不同平台的开发者api auth值)
  5. 在对应的钩子函数中使用对应的方法

do_action => 触发函数 ---> 读取保存的开发者api key ===> 调用不同平台api ==> 同步成功

这种方法是一个很简单的使用wordpress插件的方式。(wordpress文章发布hookname publish_post)
也是实现同步文章信息的方法。在不同的平台上同步自己的文章,可以有助于保存文章。
本文更大的思路在于,有时候有些东西想了就等于能做了。
申请各平台的api不用讲解了。

如何制作一个插件
插件api

Comments

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用*标注

评论

姓名 *

电子邮件 *

站点

在此浏览器中保存我的名字、电邮和网站。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK