Remote posting wordpress with XML-RPC metaWeblog.newPost and IXR_Library Class

Remote posting wordpress with XML-RPC metaWeblog.newPost and IXR_Library Class

WordPress has supported MetaWeblog API that Allows external programs to get and set the text and attributes of weblog posts.To create a new posting remotely, requiring metaWeblog.newPost as XML-RPC API communication protocol. Read MetaWeblog API official site to the documentation

To be able to communicate with metaWeblog.newPost, a class IXR_Library required. Why do we use IXR_Library class? I have explained in the post Simple wordpress xmlrpc with IXR_Library Class.

 How to Using metaWeblog.newPost 

metaWeblog.newPost is use to create new post. For parameters used in metaWeblog.newPost you can read it from

Okay, lets begin my metaWeblog.newPost and IXR_Library tutorial

1. You need download IXR_Library here.
2. Create new php file as new_post.php and copy the code below

        include "IXR_Library.php";
	$XmlRpc_result = null;
	$url= ''; // Your XMLRPC Url
	$XmlRpc_client = new IXR_Client ($url);
	$date = new IXR_Date(strtotime('2015-02-23 18:57:33') ); // writing publish date
	$title="New post with metaWeblog.newPost and IXR_Library by seegatesite"; // your post title
	$body="Hello world, this is my metaWeblog.newPost and IXR_Library first content"; // the article content
	$category="category1, category2"; // Post category can be seperated by comma seperated. Ensure that these categories exists in your site.
	$keywords="keyword1, keyword2, keyword3";  // This is tag post
	$customfields=array('key'=>'My Xmlrpc', 'value'=>'metaWeblog.newPost'); // Custom field

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

	$content = array(
                 'mt_allow_comments'=>0, // 1 to allow comments
                 'mt_allow_pings'=>0, // 1 to allow trackbacks
                 'custom_fields' => array($customfields) ,
				 'date_created_gmt' => $date
	$params = array(1,'your-username','your password',$content,true); // set true if you need to publish post, set false if you need set your post as draft
		$XmlRpc_result = $XmlRpc_client->query(
		$data = $XmlRpc_client->getResponse();
		print_r( $data );
	 catch (Exception $e){
		 var_dump ( $e->getMessage ());


$date = new IXR_Date(strtotime('2015-02-23 18:57:33') );

the code above is one of the advantages of using IXR_Library. Using IXR_Date class allows us to set the post time.You can do the scheduling post as you want.

$params = array(1,'your-username','your password',$content,true);

Syntax above is how to set parameter. Set true if you want publish the post, set false if you need set draft to your post status.

$XmlRpc_result = $XmlRpc_client->query(

To use metaweblog.newpost use syntax $XmlRpc_client->query().

Use $data = $XmlRpc_client->getResponse() to get return value, the result of return value is postid as string.

Finish :), You can read my another XMLRPC article here or maybe you can combine metaWeblog.newPost  with amazon script to create auto post article from amazon .

The following two tabs change content below.
This site is a personal Blog of Sigit Prasetya Nugroho, a Desktop developer and freelance web developer working in PHP, MySQL, WordPress.

Leave a Comment

Your email address will not be published.

Time limit is exhausted. Please reload CAPTCHA.

%d bloggers like this: