- 2009/04/29 18:01
- WordPress

ちょっとスクリプトからWordPressに投稿したいということがありまして、PHPからWordPressに投稿する方法はないかと模索しておりました。
そこでタイムリーに以下のページでXML-RPCについてのまとめ記事が!
最初ここで書いてあるコードを使おうと思ったのですが、うまくいかず、何回も質問のコメントをしてしまいました。その節はありがとうございました。
ということで、以下のコードWordPressにXML-RPCを使って投稿できるようになりました。
というか、ほとんどパクリなんですが・・・
まず、必要条件としては、PEARのXML/PRCがインストールされていることが必要です。
まずは以下のようにXML_RPCをインストールしてください。
# pear install XML_RPC
では、以下、WordPressへの投稿スクリプトです。
<?php
//PEAR XML_PRCの読み出し
require_once("XML/RPC.php");
$host = "ホスト名";
$xmlrpc_path = "/パス/xmlrpc.php";
$appkey = '';
$user = 'ユーザー名';
$passwd ='パスワード';
$c = new XML_RPC_client($xmlrpc_path, $host, 80);
$appkey = new XML_RPC_Value($appkey, 'string');
$username = new XML_RPC_Value( $user, 'string' );
$passwd = new XML_RPC_Value( $passwd, 'string' );
$message = new XML_RPC_Message(
'blogger.getUsersBlogs',array($appkey, $username, $passwd)
);
$result = $c->send($message);
if(!$result){
exit('Could not connect to the server.');
} else if( $result->faultCode() ){
exit($result->faultString());
}
$blogs = XML_RPC_decode($result->value());
$blog_id = new XML_RPC_Value($blogs[0]["blogid"], "string");
//--------ここまでがBlogIDの取得----------------------------
$title = "今週の管理人Bookmark (".date('n/j',$oneweek).'-'.date('n/j',time()).')';
$categories = array(
new XML_RPC_Value("カテゴリー名", "string"),
);
$description = "ここに本文を入れます。HTML も書けます<p>段落</p>";
$content = new XML_RPC_Value(
array(
'title' => new XML_RPC_Value($title, 'string'),
'categories' => new XML_RPC_Value($categories, 'array'),
'description' => new XML_RPC_Value($description, 'string'),
'wp_slug' => new XML_RPC_Value('bookmarks-of-'.date('Yms'),'string'),
'dateCreated' => new XML_RPC_Value(time(), 'dateTime.iso8601')
),
'struct');
$publish = new XML_RPC_Value(1, "boolean");
$message = new XML_RPC_Message(
'metaWeblog.newPost',
array($blog_id, $username, $passwd, $content, $publish)
);
$result = $c->send($message);
if(!$result){
exit('Could not connect to the server.');
} else if( $result->faultCode() ){
exit($result->faultString());
}
?>
参考ページとは違う点としては、スラッグ(wp_slug)を追加している点でしょうか(^^;)
あと、前半部分はblogIDを取得する部分なんですが、決め打ちでBlogIDが分かっている場合は前半部分はいらないですね。
こんな感じで投稿できるようになります。
今回のスクリプトを考えるのに、いろいろ参考になるページを徘徊したので、ついでに紹介します。
- WordPressでXML-RPCを使う : カフェ関連サイトのシステム開発日記
- phpとpearでXML-RPCを利用してWordPressへ投稿 | ボクの覚え書き – CentOSでサーバ構築
- SeeSaaブログへXML-RPCで投稿 PHP | WordPressとPHPの勉強中
- WordPressノウハウ~走り書き~ – typista
- WEBで何か作るよ(Ajax/php etc.):livedoor Blog, PICS 用 PHP Atom API Lib (Atomライブラリ) – livedoor Blog(ブログ)
ほんと、自分のプログラムに対する非力さを痛感する日々です(^^;)
もっと自分で勉強しなくちゃダメですね~。
あと、もっとオブジェクト脳にならなければならないですね(^^;)
WordPress 2.7対応「導入&カスタマイズ」実践ガイド―個人ブログも企業サイトも簡単&無料で構築できる!
関連記事
- WordPress投稿画面のキーボードショートカット集
- WordPress 3.0.2リリース
- WordPress プラグイン・テンプレート
- [WP] Contact Formからのスパムを排除する方法
- SyntaxHighlighterプラグインがバージョンアップしてSyntaxHighlighter Evolvedに
- WordPress 2.7.1リリース
- WordPressで画面真っ白や502エラーの原因は「eAccelerator」だった
- WordPress カテゴリー毎のfeed
Sponsored Link
このブログで関連すると思われる他の投稿
www.google.co.jp で「wordpress xmlrpcで投稿」をお探しですか?
この記事以外にも「wordpress xmlrpcで投稿」に関連する記事がありますので合わせてご覧ください。
Google+
zenback
- Newer: Google Adsense で Google Analyticsが利用可能に
- Older: CakePHPでcronを使う方法
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://www.multiburst.net/sometime-php/2009/04/newpost-with-wordpress-xmlrpc-api/trackback/
- Listed below are links to weblogs that reference
- [PHP] XML-RPCを使ってWordPressに投稿する from Sometime PHP
Additional comments powered by BackType






