问题
Does anyone have a code sample they can share that show how to make a basic blog post to Wordpress using the CodeIgniter xml-rpc library?
So far, I have this, which always results in "Bad login/pass combination", although I am using the correct combination.
function doPost(){
$this->load->library('xmlrpc');
$bloguser = "theUserid";
$blogpass = "thePassword";
$blogid = 0; //I've tried 0 and 1 here.
$post['title'] = "The title of a new post";
$post['description'] = "The body of the post.";
$this->xmlrpc->server("http://localhost/blog/xmlrpc.php", 80);
$this->xmlrpc->method('metaWeblog.newPost');
$this->xmlrpc->request = array($blogid, $bloguser, $blogpass, $post, TRUE);
if ( ! $this->xmlrpc->send_request())
{
echo $this->xmlrpc->display_error();
}
else
{
echo '<pre>';
print_r($this->xmlrpc->display_response());
echo '</pre>';
}
}
回答1:
After much gnashing of teeth, this seems to work:
function doPost(){
$this->load->library('xmlrpc');
$bloguser = "theUserID";
$blogpass = "thePassword";
$blogid = 1;
$publishImmediately = TRUE;
$thePost = array(array('title' => array('this is the title','string'),
'description' => array('this is the description','string')
),
'struct');
$myPost = "my post";
//$this->xmlrpc->set_debug(TRUE);
$this->xmlrpc->server("http://url.to/xmlrpc.php", 80);
$this->xmlrpc->method('metaWeblog.newPost');
$request = array($blogid, $bloguser, $blogpass, $thePost, $publishImmediately);
$this->xmlrpc->request($request);
$result = $this->xmlrpc->send_request();
if ( !$result )
{
echo $this->xmlrpc->display_error();
}
else
{
echo '<pre>';
print_r($this->xmlrpc->display_response());
echo '</pre>';
}
}
The important part is to note the struct for the elements of the actual post.
来源:https://stackoverflow.com/questions/1324360/need-a-code-sample-showing-how-to-post-to-wordpress-using-codeigniter