NodeでWordPress APIを使って投稿してみる


WordPressのNodeJS用モジュールを使ってみたのでメモ。

wordpressのAPIを試しに使ってみようと思って、調べてみたらこちらもやはりNodeのモジュールが既に提供されていました。
ただし、このモジュールに関する日本語のドキュメントは皆無なのでこのblogで使い方簡単にご紹介します。

node-wordpressのインストール

以下のnpmモジュールを使ってwordpressの記事取得や投稿を実装します。

node-wordpress
https://github.com/scottgonzalez/node-wordpress

インストールはnpm install wordpress --save

wordpress clientの初期化

まずはwordpressのサイトの情報をjsonで定義しましょう。

wp-config.js

module.exports = {
    url: "http://hogehoge.wpblog.jp/",
    username: "hoge",
    password: "hogehoge"
};

次にnodeの実行ファイルでインスタンスを初期化します。

var wordpress = require( 'wordpress' );
var wpConfig = require('../wp-config.js');

// initialize wp client instance
var wpClient = wordpress.createClient(wpConfig);

これで準備おっけいです。

記事を取得する

記事一覧の取得のためにはgetPostsを使います。

wpClient.getPosts(function( error, posts ) {
    console.log(posts);
});

実行するとこんな感じのjsonデータが配列で返ってきます。

[{ id: '202',
    title: 'test4',
    date: Sat Mar 21 2015 14:05:22 GMT+0900 (JST),
    modified: Sun Mar 22 2015 01:47:04 GMT+0900 (JST),
    status: 'publish',
    type: 'post',
    name: 'test4',
    author: '1',
    password: '',
    excerpt: '',
    content: 'testtest',
    parent: '0',
    link: 'http://hoghoge.wpblog.jp/',
    menuOrder: 0,
    commentStatus: 'open',
    pingStatus: 'open',
    sticky: false,
    thumbnail: [],
    format: 'standard',
    terms: [ [Object] ],
    customFields: [ [Object], [Object] ] 
}]

簡単に取得できますね。

記事の投稿

次は投稿してみましょう。投稿にはnewPostを使います。

    wpClient.newPost({
      title: 'タイトル',
      status: 'publish', /*記事のステータス'publish, draft...'*/
      content: '内容', /*HTMLで書く、画像を表示したいときにはimgタグなどを使える*/
      author: 1, /*authorのIDはgetPostsで返ってくるときの値で確認できる*/
      customFields: [{key: 'hoge', value: 'fuga'}] /*カスタムフィールドを追加したいとき*/
    }, function(){
      console.log("successfully posted");
    })

実際のwordpressのサイトにいって、記事が投稿されていればOKです!

以上、wordpressのAPIをめちゃくちゃ簡単に扱えるnode moduleの紹介でした。