Rubyを使って、WordPressを操作したい場合、rubypressを使うと便利です。
投稿や記事の取得などの基本的な動作は
rubypressでWordPressの情報をRubyから操作する | mah365
やREADMEに載っています。
ここでは自分が利用した際にハマったところを記載します。
#rubypressでのタグ/カテゴリの取得
タグやカテゴリはgetTerms()
で取得することができます。タグの形式は、XML-RPC WordPress API/Taxonomies « WordPress Codexが詳しいです。
taxonomyの部分でタグかカテゴリか判断しているらしく、タグは、post_tag
, カテゴリは category
という風に区別されています。
rubypressのデフォルトでは、getTerms()
を使用すると、カテゴリだけを取得するようになっているので、optionsで指定する必要があります。
#rubypressでタグ/カテゴリを付けて投稿する場合
タグとカテゴリを付けて投稿する場合、term_id
という一意のidを指定してから投稿します。 (参考: http://blog.include-soft.com/215) その際、カテゴリとタグを区別する場合はその指定をします。タグ/カテゴリの指定をするときは、Arrayの形で渡すことにします。
わかりにくいと思うので、コードを貼り付けておきます。
wp = Rubypress::Client.new(
host: "WordPressのURL",
username: "ユーザ名",
password: "パスワード"
)
wp.newPost(
blog_id: "ブログのID",
content:{
post_status: 'publish', #=> publish: 公開, draft: 下書き
post_date: Time.now,
post_content: '記事の内容',
post_title: '記事のタイトル',
terms: {
category: 'カテゴリで指定するterm_id', #=>[2,3...]のような感じで指定する
post_tag: 'タグで指定するterm_id', #=> [1,4...]のような感じで指定する
}
}
)