なぜWordPressに記事を自動投稿したいのか?
一言でいうと、Finance関係の情報を自動更新したいからです。
貴金属や為替や株のデータ解析をするオリジナルコードは、だいたい出来ています。
しかしながら、毎日、解析した結果をWordPressに記事として書いて投稿できる自信がありません。
そこで、解析した結果を、WordPressに自動投稿できたらと考えるようになりました。
スマホで簡単に解析結果を確認できると、いろいろと楽になると思っています。
でもPHPってやったことありません
PHPはやったことありませんが、実現したいことは決まっています。
そこで、Codingに挑戦してみることにしました。
調べてみたところ、「XML-RPC」という仕組みがあるみたいです。
便利なライブラリも見つけることができました。
さっそく、ダウンロードしてみましょう!!
wget http://php-ixr.googlecode.com/files/php-ixr-1.7.4.tar.gz tar zxvf php-ixr-1.7.4.tar.gz
次は、仕様書のドキュメントも眺めて見ましょう。
頑張って挑戦してみたのでサンプルコード
これらの情報をベースに、さっそく実装してみました。
サンプルコードとして載せておきます。
<?php //inctioのライブラリ呼び出し include_once('IXR_Library.php'); // 投稿用コンテンツ作成 $category_array = array('カテゴリ'); $tags_array = array('タグ1','タグ2'); $title_str='タイトル'; $content_str='<h2>テスト投稿の本文です。</h2><p>XML-RPC 経由での投稿テスト。</p>'; $post_content = array( // 投稿者ID 未設定の場合投稿者名なしになる。 'post_author' => '', // 投稿状態 'post_status' => 'publish', // タイトル 'post_title' => $title_str, // 本文 'post_content' => $content_str, // カテゴリとタグ 'terms_names' => array( 'category' => $category_array, 'post_tag' => $tags_array ) ); // コンテンツ投稿 $client = new IXR_Client("http://example.com/xmlrpc.php"); $wp_username='name'; $wp_password='password'; $status1 = $client->query( "wp.newPost", // 使うAPIを指定(wp.newPostは、新規投稿) 1, // blog ID: 通常は1、マルチサイト時変更 $wp_username, // WordPressのusename $wp_password, // WordPressのpassword $post_content // 投稿ポストの内容 ); // 東経結果確認 // 失敗したらここで終了 if(!$status1){ die('Something went wrong - '.$client->getErrorCode().' : '.$client->getErrorMessage()); } // 返り値は投稿ID $post_id = $client->getResponse(); echo "$post_id\n";
以下のコマンドで動作確認を行っています。
php -f sample_post.php
これで、WordPressに投稿する基本は分かりました。
このサンプルコードをベースに「DailyReport」の作成に取り組みます。
参考にしたサイト
- http://nekoriki.net/47
- ここのコードをカスタマイズしてみました。