如何让Wordpress“通知更改”到WebService / Uri

时间:2014-05-12 02:05:18

标签: wordpress wordpress-plugin

我们正在构建一个具有多种功能和广泛动态技术(F#,C#,MVC,Python等)的动态平台。对于CMS / Content,我们选择使用Wordpress来缩短开发时间。并且,“它非常漂亮且功能正常”-CEO。

挑战:如何让Wordpress通知外部服务/ uri已发生变化。

我们不想从其他服务中编写“后台线程”来不断“ping”wordpress网站/数据库以进行更改,即“拉”。我们希望这是一个Push模型

话虽如此,我们希望将一些json,xml或其他内容传递给另一个我们可以使用更改并在内部处理的URL。

SQL Azure确实支持触发器,是的;但是,当你读到“触发器”这个词时,你是否像我一样颤抖?此外,我不知道从哪里开始为他们提供哪些表格。

以下是我们想要捕捉的一些变化:

  • 发布草稿
  • 发布后
  • 发布已删除(依此类推)
  • 添加,重命名,删除标记
  • 添加,重命名,删除类别

可能还有其他事件,例如媒体文件上传时(对于CDN)。

随机 - 几乎相关 - 想法:我已经为Windows Azure Blog Storage找到了一些适用于媒体的Wordpress插件,这可能有所帮助 - 我将尝试为媒体设置CDN的存储帐户。如果有其他相关的Wordpress插件用于通知外部服务的类别,标签等,请告诉我 - 我还没有找到它们(他们都只是“发送电子邮件”某人)。

我发现了这样的问题:

Wordpress: How to ping URL from custom field on publish

但它并没有让我在所有的帖子草稿中一路走来(我认为)。而且,我甚至不确定在哪里插入该代码(之前没有修改过wordpress安装)。

1 个答案:

答案 0 :(得分:1)

最简洁的方法是create a Wordpress plugin。这样,您的代码就与Wordpress Core和所选主题分开。

该插件可能非常简单。您需要一个或多个函数来进行通知,并且add_action语句可以function so23600027_notify_external_site( $post_id ) { //Your notification code here, probably using cURL } // Catch when posts saved (should get both draft and published posts) add_action ( 'save_post', 'so23600027_notify_external_site' ); //Catch when posts deleted add_action ( 'delete_post', 'so23600027_notify_external_site' ); //etc. 语句在发生感兴趣的操作时触发函数。

{{1}}