XMLRPC使用wp.deletePost删除Wordpress Post

时间:2012-11-17 06:06:16

标签: php wordpress xml-rpc

我试图用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>

1 个答案:

答案 0 :(得分:1)

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

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

此外,您的 $ params 应该是一个数组,其中[1]的值为post_id,[2]用户名为[3]密码。

编辑:它显然存在于版本3.4。所以你可以使用上面的解决方案,或者使用 wp.deletePost $ params 值[1]用户名a [2]密码和[3] post_id。