如何将数据发布到 WordPress 插件?

b20*_*000 5 php wordpress

我想创建一个 WordPress 插件,它可以捕获从外部对某个 URL 的 POST/GET 请求,这样我就可以让外部 PHP 代码将数据 POST 到 WordPress 插件,然后插件可以在内部进一步处理。

我不想从外部创建博客文章或页面,我知道 XML-RPC 接口就是为此而存在的。我说的是从外部将数据发布到 WordPress,然后在插件中进一步处理它。

我想我也可以直接连接到 WP DB,但这可能不是一个非常干净的解决方案,如果我升级 WP,可能会崩溃。

hak*_*kre 3

正如您已经了解的 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 功能(例如数据库访问等)。