原文链接:http://www.wprecipes.com/post-on-your-wordpress-blog-using-php#
一、原文翻译
谁说我们一定要登录WordPress的控制板才能发表博客日志? 利用PHP和cURL一样可以达到同样的效果, 下面就来看看吧。
我们要用下面的代码来完成任务, 不过这代码不是专为WordPress而设计的,所以请不要把代码复制到functions.php或者其它任何文件中。
注意:一定要激活WordPress上的XMLRPC日志选项。 不激活XMLRPC,以上代码就不能在数据库中添加内容。 还有一点需要注意,php.ini文件中的XMLRPC函数也要被激活代码才能运行。
function wpPostXMLRPC($title, $body, $rpcurl, $username, $password, $category, $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, // 1 to allow comments 'mt_allow_pings'=>0, // 1 to allow trackbacks '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:文章标题
$body:文章内容
$rpcurl:wordpress中的xmlrpc.php文件路径
$username:后台登录用户名
$password:后台登录密码
$category:文章所属分类
$keywords:文章关键字
$encoding:编码
了解了各个参数的意义,调用就变得非常简单,伪码如下:
$username='admin'; $password='admin'; $title=$_POST['title']; $keywords=$_POST['keyword']; $body=$_POST['content']; $rpcurl = "http://yourdomain.com/xmlrpc.php"; $result=wpPostXMLRPC($title,$body,$rpcurl,$username,$password,0,$keywords); echo(print_r($result));
再去你的wordpress后台看看文章是不是已经添加进来了。