【WP REST API解説】投稿を取得する(GET /posts/id)

python

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

記事の引用時に表示されるテキスト

author

投稿者

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が取得されることに注意してください。

tags

記事のタグ

_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入門】'}

 

python
AI入門:文系のプログラミングはPythonから始めるのがオススメ!

AIビジネスが流行する中、プログラミングができないことを負い目に感じている文系出身の社会人、文系の学 …

python
【pythonエラー対処法】TypeError: hoge() takes 0 positional arguments but 1 was given

HelloWorldから始まり、FizzBuzzと順調にPythonのサンプルコードを完成させていく …

python
pickleでエラーならdillで保存する!【Python】

Pythonのpickleを使うと、いろいろなデータを保存出来て便利ですよね。 しかし、ファイルオブ …