【问题标题】:XMLRPC Delete Wordpress Post with wp.deletePostXMLRPC 使用 wp.deletePost 删除 Wordpress 帖子
【发布时间】:2012-11-05 20:42:26
【问题描述】:

我正在尝试使用 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>

【问题讨论】:

    标签: php wordpress xml-rpc


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 非常感谢,完美运行,如果该方法不存在,为什么这里记录codex.wordpress.org/XML-RPC_WordPress_API/Posts#wp.deletePost
    • 那是“还”部分:D 它现在显然是...我查看了一个旧的 xmlrpc 文件,它还没有此功能...抱歉误导性信息,但在在这种情况下,我不确定为什么您的代码一开始就无法正常工作...您确定您已升级到最新版本(因为已在 3.4 中添加)?
    猜你喜欢
    • 1970-01-01
    • 2010-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-28
    • 1970-01-01
    • 2019-07-04
    • 2023-03-30
    相关资源
    最近更新 更多