我想创建一个 WordPress 插件,它可以捕获从外部对某个 URL 的 POST/GET 请求,这样我就可以让外部 PHP 代码将数据 POST 到 WordPress 插件,然后插件可以在内部进一步处理。
我不想从外部创建博客文章或页面,我知道 XML-RPC 接口就是为此而存在的。我说的是从外部将数据发布到 WordPress,然后在插件中进一步处理它。
我想我也可以直接连接到 WP DB,但这可能不是一个非常干净的解决方案,如果我升级 WP,可能会崩溃。
正如您已经了解的 WordPress XMRPC:您的插件可以为 XMLRPC 注册自己的函数来侦听请求。然后您可以向 XMLRPC 端点发送 POST 请求,然后插件功能将被触发。
以下代码示例是一个简单的插件类,它将函数注册到 XMLRPC 端点my.recieve。它显示了回调函数如何注册到该字符串:
/**
* XML RPC Plugin
*/
return RecievePostPlugin::bootstrap();
class RecievePostPlugin
{
private static $instance;
public static function bootstrap()
{
if (null === $this->instance)
$this->instance = new __CLASS__;
return $this->instance;
}
public function __construct()
{
add_filter('xmlrpc_methods', array($this, 'addXMLRPCActions'));
}
public function addXMLRPCActions(array $methods)
{
$methods['my.recieve'] = array($this, 'recieveXMLRPCAction');
return $methods;
}
public function recieveXMLRPCAction(array $arguments)
{
// your code here, POST can be accessed via $_POST
}
}
Run Code Online (Sandbox Code Playgroud)
如果您不喜欢 XMLRPC 开销,您可以只创建插件的 PHP 文件部分并请求它。然后您需要自己加载所有您可能想要使用的 WP 功能(例如数据库访问等)。