WordPress作为XML-RPC客户端?


13

我想同步两个网站上的帖子编辑。测试环境,而不是生产环境。单向(站点A到站点B,但不向后)。

基本上,我在本地测试堆栈中编辑帖子,而在远程服务器上的同一帖子(测试内容集的一部分)应使用结果内容的相同副本进行更新。

我知道XML-RPC服务器是在WordPress中实现的...但是WordPress本身不是XML-RPC客户端,而且我不知道将其整合为一个有多容易(我通常对XML有所警惕:)

因此,我应该使用XML-RPC并实现客户端功能还是不值得的,我应该在远程服务器上构建自定义表单或其他内容以捕获更改?


fetch_feed和使用简单Pie可能更易于实现。
Chris_O 2011年

@Chris_O hmmm ...但是我需要(1)生成站点上所有帖子的提要(2)每次扫描该提要中的每个帖子以查找更改。(编辑)基本上,这是拉动情况(B从A拉出),我认为我需要(A推向B)
2011年

它可以用于捕获新职位,但对于检查更改不是很有效。
Chris_O 2011年

@Chris_O没有条件可以编辑较新的帖子,相反-如果需要更改已弃用的测试数据,我可以返回并编辑一些旧的帖子。
2011年

Answers:


13

WordPress已经实现了XML-RPC客户端类。与服务器部分class-IXR.php位于同一文件中:位于中wp-includes

以下代码将生成一个新帖子。您可以将其包装在函数中并将其附加到save_post/ update_postaction钩子。要同步这两个部分,您可以检查后塞或向第二个博客中的后服提交相同的后ID。

$rpc = new IXR_Client('http://second-blog-domain.tld/path/to/wp/xmlrpc.php');

$post = array(
    'title' => 'Post Title',
    'categories' => array('Category A', 'Category B'),
    'mt_keywords' => 'tagA, tagB, tagC',
    'description' => 'Post Content',
    'wp_slug' => 'post-slug'
);

$params = array(
    0,
    'username',
    'password',
    $post,
    'publish'
);

$status = $rpc->query(
    'metaWeblog.newPost',
    $params
);

if(!$status) {
    echo 'Error [' . $rpc->getErrorCode() . ']: ' . $rpc->getErrorMessage();
    exit();
}

谢谢,我不知道它实际上有客户端,但是快速Codex搜索遗漏了它。
2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.