1

我正在尝试使用 XMLRPC 删除 wordpress 帖子,我创建了一个函数,但它返回了一个奇怪的东西:

function deletePost($rpcurl,$username,$password,$post_id) 
{
// xmlrpc settings
$params = array(0,$username,$password,$post_id);

// run xmlrpc
$request = xmlrpc_encode_request('wp.deletePost', $params);
$ch = curl_init();  
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);  
curl_setopt($ch, CURLOPT_URL, $rpcurl);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
curl_setopt($ch, CURLOPT_TIMEOUT, 1);  
$results = curl_exec($ch);  
curl_close($ch);

// testing
var_dump( $results);
return $results;  
}

这是返回的内容(一旦剥离了一些 xml 标签):

<name>faultCode</name>
<value><int>-32601</int></value>
<name>faultString</name>
<value><string>server error. requested method wp.deletePost does not exist.</string>
4

1 回答 1

1

它实际上是它所说的......在xmlrpc服务器上没有这样的方法,因为wp不允许自己删除帖子......但是在xmlrpc中有一个名为blogger.deletePost的博客API方法。它应该做你想做的事。当我查看您的代码时,我认为您只需要修复两件事,将您的第三行代码更改为

$request = xmlrpc_encode_request('blogger.deletePost', $params);

而且,您的$params应该是一个数组,[1] 上的值是 post_id,[2] 用户名是 [3] 密码。

编辑:它显然存在于 3.4 版中,因此您可以使用上面的解决方案,或者使用wp.deletePost$params,其值为 [1] 用户名、[2] 密码和 [3] post_id。

于 2012-11-17T06:46:42.923 回答