WordPress为插件开发者提供了许多APIs,插件(plugin)就是通过这些APIs与WordPress交互的。每一类API或者程序接口在与WordPress交互中各司其职发挥着不同的功用,下面是一个简单的列表,列举了WordPress提供的APIs以及它们的作用。

  • Plugin – 提供一系列可以访问WordPress各个部分的钩子函数(hooks)。WordPress有两类钩子:Actions和Filters。Action hook允许你访问WordPress代码执行过程,并在某个特定的执行过程里植入你的自定义的插件代码。例如,你可以在用户注册了WordPress以后执行一段自定义代码。Filter hook则允许修改即将被加入到数据库里的数据,或者更新刚刚从数据库取出的数据。
  • Widget – 在插件中可以创建并管理Widget。Widget管理选项在Appearance->Widgets下,可以被加入到任何已经在主题中注册过的sidebar中。这组API可以为一个widget创建多个实例,应用到sidebar中。
  • Shortcode – 为plugin添加shortcode支持。Shortcode是几个简单的钩子,相当于一段PHP代码的占位符,将这个占位符(例如[shortcode])加入到post或者page中,就可以运行一段php代码。
  • HTTP – plugin中发送HTTP请求。这组API可以从一个站外URL中获取数据或者将内容提交给一个URL。目前WordPress支持五种发送HTTP请求的方法。这组API标准化了发送过程,并且在真正发送前预先测试各种发送方式是否合适。根据你服务器的配置,选择一种最合适的方法发送请求。
  • Settings – 为你的插件添加Settings。使用Settings API最主要的好处就是安全性。所有settings数据都会被过滤,因此当你需要保存settings数据时无须担心跨站点伪造请求(cross site request forgery, CSRF)和跨站点脚本攻击(cross site scripting, XSS)。
  • Options – 这组API用于保存和取出插件的Options选项。这组API具备创建新选项、更新已存在选项、删除选项以及返回任何已存在的选项的能力。
  • Dashboard Widgets – 创建管理员控制板的widgets。Widgets会自动出现在WordPress的控制板中,并包含所有标准功能,包括最小化、拖拽、屏幕选项和隐藏功能。
  • Rewrite – 为你的plugin创建定制化的重定向规则(rewrite rules)。这组API允许你在插件路径的最后添加定制化的结构。例如,静态结尾标签(static end – points)(形如/custom-page/)或者结构化的标签(structure tags)形式(形如%postname%)或者额外的feed链接(additional feed links)(形如/feed/json/).
  • Transients – 在插件中创建临时数据,这些数据会被缓存。这组API与Options的API类似,但它创建的数据都是有过期时间的。
  • Database – 用于访问WordPress数据库。包括在插件中创建、更新、删除、索取数据等操作。

WordPress还提供了一组很有用的API函数 – 重载函数(pluggable functions)。这些函数允许你在插件中重写WordPress的核心代码。例如,wp_mail()是一个重载函数,你可以在自己的插件中定义这个函数并使用SMTP发送邮件,从而覆盖掉默认的发送邮件的方法。所有的重载函数都定义在/wp – includes/pluggable.php中。

以上内容翻译自PROFESSIONAL WordPress® Plugin Development一书,有不对的地方还请大家多多指教。