WordPress remote posting

Pentru cei care nu stiau, WordPress-ul ofera posibilitatea crearii unui noi articol si de la distanta (adica dintr-un fisier .php pus in alta parte). Lucrul asta e util pentru integrarea optiunii de a posta pe un blog dintr-o aplicatie thrid-party (cms-ul unui site de prezentare, ERP, mobile site-uri etc.)

Protocolul de comunicare intre fisierul .php si wordpress este numit XML-RPC (de fapt e o structura XML trimisa encodat si decodata de catre worpress).

<?php
function postviaxmlrpc($title,$body,$category,$tags){
	$rpcurl = "http://www.blog.ro/xmlrpc.php";
	$username = "username admin";
	$password = "parola admin";
	$XML = array(
		"title" => $title,
		"description" => $body,
		"categories" => array($category),
		"mt_keywords" => $tags
	);

	$params = array('',$username,$password,$XML,1);
	$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);
	return curl_exec($ch);
	curl_close($ch);

}

// se apeleaza
postviaxmlrpc($title,$body,$category,$tags);
// variabila $category este de tip text (numele categoriei)
// tagurile sunt despartite prin virgula iar daca nu exista se creeaza
// functia returneaza ID-ul postului
?>

Pentru a functiona este nevoie sa serverul sa aiba activata libraria cURL si extensia php_xmlrpc.

Happy coding

Leave a Comment