通過 XMLRPC 實現 WordPress 微信小程序發布文章

通過 XML-RPC 功能實現 WordPress 遠程發布內容

準確的說,這篇內容是通過 XML-RPC 功能實現 WordPress 遠程發布帖子筆記。WordPress 官方 APP 也是通過 XML-RPC 功能實現發布文章,如果禁用 XML-RPC 功能,則 WordPress APP 是無法發布文章的。所以才有了通過 XML-RPC 來實現微信小程序發布內容的實踐。

之前學習 Python 爬蟲的時候,學習了通過 XMLRPC 自動發布文章到 WordPress。于是,最近在折騰 WordPress 微信小程序的時候,就想著如何通過 XML-RPC 實現小程序的發布文章,免去安裝 JWT 身份認證插件及授權的問題。經過一番的搜索和折騰,終于實現了免安裝 JWT 插件實現小程序發帖。現在提供一下初始成果,后期有時間完善再整合至 WordPress 連接微信小程序 API 增強插件,如果有興趣的,可以先行動手折騰一下。

內容發布代碼


/*
* https://codex.wordpress.org/XML-RPC_WordPress_API/Posts
* PHP 版 XMLRPC 遠程發布內容至 WordPress
* Author : 艾碼匯
* HomePage : www.iaitwu.live
*/
function wp_post_insert( $title, $body, $category, $user, $passwd ){
    $url = get_bloginfo('wpurl').'/xmlrpc.php';
    $content = array( 
        'post_title' => $title,
        'post_content' => $body,
        'post_type' => 'post', // 文章類型,默認 post;
        'post_status' => 'pending', // 發布狀態
        'post_category' => array($category) // 分類id
    );
    $params = array(0,$user,$passwd,$content,true);
    $request = xmlrpc_encode_request("wp.newPost", $params, array('encoding' => 'UTF-8', 'escaping' => 'markup'));
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
	curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
    $results = curl_exec($ch);
    curl_close($ch);
	$data = simplexml_load_string($results);
    return $data;
}

圖像上傳代碼


/*
* https://codex.wordpress.org/XML-RPC_WordPress_API/Media
* PHP 版 XMLRPC 遠程發布內容至 WordPress
* Author : 艾碼匯
* HomePage : www.iaitwu.live
*/
function wp_uploads_media( $file, $type, $user, $passwd ){
    $url = get_bloginfo('wpurl').'/xmlrpc.php';
    if($type == 'jpg' || $type == 'jpeg') {
	$extension = 'image/jpeg';
    } else if($type == 'png') {
		$extension = 'image/png';
    } else if($type == 'gif') {
		$extension = 'image/gif';
    } else {
		$extension = 'text/plain';
    }
    $image = date("Ymdhis").'.'.$type; 
    $content = array(
	'name'=>$image,
	'type'=>$extension,
	'bits'=>$file, // $file 必須是 base64 圖像格式
	'overwrite'=>false
    );
    $params = array(0,$user,$passwd,$content);
    $request = xmlrpc_encode_request("wp.uploadFile", $params);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_POSTFIELDS, $request);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
    $results = curl_exec($ch);
    curl_close($ch);
	$data = simplexml_load_string($results);
    return $data;
}

相關推薦

5 條評論

  1. 老大,這個會出個詳細教程嗎?

    • Chi

      暫時沒有時間寫詳細教程,只提供了這個思路。話說你也是個大神呀。

    • 翁志輝

      葉師傅也來啦

  2. Propitiator??????

    厲害

  3. 翁志輝

    葉師傅也來啦

發表評論

微信掃一掃

微信掃一掃

微信掃一掃,分享到朋友圈

通過 XMLRPC 實現 WordPress 微信小程序發布文章
返回頂部

顯示

忘記密碼?

顯示

顯示

獲取驗證碼

Close
3d组六技巧