如何使用xml-rpc和curl在没有管理员登录的情况下在Wordpress中添加帖子

时间:2014-06-17 13:11:27

标签: wordpress xml-rpc posts

我想使用xml-rpc和curl或任何替代方法在Wordpress网站中添加帖子而无需登录WP管理员。这可能吗?

2 个答案:

答案 0 :(得分:1)

我得到了答案,以下代码对我有用。

function wpPostXMLRPC ($title,$body,$rpcurl,$username,$password,$category='Uncategorized',$keywords='',$encoding='UTF-8') {

    $title = htmlentities($title,ENT_NOQUOTES,$encoding);

    $keywords = htmlentities($keywords,ENT_NOQUOTES,$encoding);

    $content = array (
        'title'=>$title,
        'description'=>$body,
        'mt_allow_comments'=>0,
        'mt_allow_pings'=>0,
        'post_type'=>'post',
        'mt_keywords'=>$keywords,
        'categories'=>array(
            $category
        )
    );

    $params = array(
        0,
        $username,
        $password,
        $content,
        true
    );

    $request = xmlrpc_encode_request('metaWeblog.newPost', $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);

    return $results;

}

$title = 'post-title';
$body = 'POST BODY WILL GOES HERE';
$rpcurl = 'http://example.com/xmlrpc.php';
$username = 'xxx';
$password = 'xxx';
$category = 'test';

$chk = wpPostXMLRPC($title,$body,$rpcurl,$username,$password,$category,$keywords='',$encoding='UTF-8');

if($chk) {
    echo $chk;
} else {
    echo 'failed';
}

答案 1 :(得分:0)

Wordpress中有一个内置功能,允许您publish an article via e-mail。从未测试过它,但它可能适合您的需求。

您可以在网站的管理员中,在设置>下进行配置。写作(网址类似于http://yourwordpresssite.com/wp-admin/options-writing.php)。

但是,如果您需要API,则可以在与XML-RPC supportwp.newPost相关的Wordpress Codex页面中找到有用的内容。

对于代码示例,您可以查看this snippet,这对我来说似乎是一个很好的基础。