不登录wordpress后台发表博客的方法

原文链接: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后台看看文章是不是已经添加进来了。
 

你可能感兴趣的:(数据库,function,wordpress,任务,Comments,encoding)