1. 程式人生 > >不登入wordpress後臺發表部落格的方法

不登入wordpress後臺發表部落格的方法

一、原文翻譯

誰說我們一定要登入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後臺看看文章是不是已經新增進來了。