Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将数据发布到wordpress插件?_Php_Wordpress - Fatal编程技术网

Php 如何将数据发布到wordpress插件?

Php 如何将数据发布到wordpress插件?,php,wordpress,Php,Wordpress,我想创建一个wordpress插件,它可以捕获来自外部对某个URL的POST/GET请求,这样我就可以将外部PHP代码发布数据到wordpress插件,然后该插件可以在内部进一步处理这些数据 我不想从外部创建博客文章或页面,我知道存在XML-RPC接口。我说的是将数据从外部发布到wordpress,然后在插件中进一步处理 我想我也可以直接连接到wpdb,但这可能不是一个非常干净的解决方案,如果我升级WP,它可能会崩溃 正如您已经知道的WordPress XMRPC:您的插件可以为XMLRPC注册

我想创建一个wordpress插件,它可以捕获来自外部对某个URL的POST/GET请求,这样我就可以将外部PHP代码发布数据到wordpress插件,然后该插件可以在内部进一步处理这些数据

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


我想我也可以直接连接到wpdb,但这可能不是一个非常干净的解决方案,如果我升级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
    }
}

如果您不喜欢XMLRPC开销,您只需在插件中创建一个PHP文件并请求它。然后,您需要小心地加载所有可能要使用的WP函数(例如,数据库访问等)。

您可以创建一个重写规则,将一些漂亮的URL重定向到插件目录中的文件。该文件将包含$u POST数据。从描述WP_重写:

function feed_dir_rewrite( $wp_rewrite ) {
    $feed_rules = array(
        'index.rdf' => 'index.php?feed=rdf',
        'index.xml' => 'index.php?feed=rss2',
        '(.+).xml' => 'index.php?feed=' . $wp_rewrite->preg_index(1)
    );

    $wp_rewrite->rules = $feed_rules + $wp_rewrite->rules;
}

// Hook in.
add_filter( 'generate_rewrite_rules', 'feed_dir_rewrite' );

你是什么意思?抓住邮件/获取请求?$\u POST/$\u GET不是吗?