Word PressのAPIを用いて投稿内容を取得する方法について説明します。
あわせて、Pythonで新規投稿を行うプログラムも紹介します。
リクエストURL
APIを用いて投稿を取得するためのリクエストURLは以下の通りです。
[ブログのアドレス]/wp-json/wp/v2/posts/<id>
ブログのアドレスは、Word Pressをインストールしているブログのトップページに当たるアドレスです。
このブログであれば、http://mojitoba.comに相当します。
<id>はブログ記事ひとつひとつに割り当てられたidです。
自分のブログであれば、記事の編集画面のURLから確認することができます。
例えばこのブログの「ニューラルネットで時系列データを学習しよう【Chainer入門】」という記事であれば、編集画面に表示された以下のID(884)を指定します。
パラメーター
context
view、edit、embedのいずれかを指定します。
リクエストの種類が変わるだけで、得られる結果に違いはありません。
結果の見方
リクエストの結果はJSON形式で得られます。
JSONを変換すると辞書が得られるので、以下にキー一覧とその意味を掲載します。
これらはAPIを用いて新規投稿を作成する時に指定するパラメーターと対応しています。
id
記事のID
date
記事が投稿された時間
date_gmt
記事が投稿された時間のGMTでの表記
guid
記事のURL(ID表示)
modified
記事の編集日時
modified_gmt
編集日時のGMTでの表記
slug
記事のパーマリンク
status
記事の公開状態
publish(公開), future(公開予約), draft(下書き), pending(非公開), private(限定公開)のいずれかが得られます。
type
投稿の種類。記事であれば「post」
link
記事のURL
title
記事のタイトル
content
記事本文
excerpt
記事の引用時に表示されるテキスト
投稿者
featured_media
アイキャッチ画像のID
comment_status
コメントの状態
open(受け付ける)、closed(受け付けない)のうちどちらか
ping_status
トラックバックを受け付けるかどうか
open(受け付ける)、closed(受け付けない)のうちどちらか
sticky
公開状態の「この投稿を先頭に固定表示」にあたるパラメータ
True, Falseのbool値
template
記事のテンプレート
format
記事のフォーマット
standard, aside, chat, gallery, link, image, quote, status, video, audioのいずれか。
一般的な記事であれば「standard」
meta
記事のメタ情報
categories
記事のカテゴリー
slugではなくカテゴリーに対応するIDが取得されることに注意してください。
記事のタグ
_links
APIでアクセスする上で役立つ情報がまとまっています。
Pythonによる実装
Pythonによる投稿リクエストの例をご紹介します。
このリクエストはサイトに影響を与えるものではないため、投稿の新規作成時に必要であったパスワードは必要ありません。
requestsパッケージが必要なので、もしお持ちでなければインストールしてください。
こちらの記事でも説明しています。
関連:【WP REST API】Word Press APIのパスワード設定方法
以下のサンプルコードは、もじとばコムのこちらの記事にアクセスするものになっています。
このままでも試すことができますが、ぜひ自分のブログの内容に書き換えて改めて実行してみてください。
import requests import json url = 'http://mojitoba.com/wp-json/wp/v2/posts/884' res = requests(url).json() print(res['title']) # 記事タイトルが表示されていればOK # {'rendered': 'ニューラルネットで時系列データを学習しよう【Chainer入門】'}