XML-RPCを使ってPHPからWordPressに記事を自動投稿する方法

なぜ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」の作成に取り組みます。

参考にしたサイト

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク