茨城県つくば市でモバイルアプリ(iPhone、Android)のプログラミングをする日記です。あとWordPress、Raspberry Pi、Arduinoなど。

モバイルアプリ開発@つくば

Pythonとpython-wordpress-xmlrpcでターミナルからWordPressを更新する

投稿日:2015年10月27日 更新日:

本記事では、Python 2.7を使っています。
執筆から時間が経っており、情報が古い可能性があります。

こんにちは、okuzawatsです。
黒い画面を触っているとハッカーになった気分が出て良いですね。

Pythonを使ってWordPressを更新したいなーと思って調べてみると、「python-wordpress-xmlrpc」というライブラリがありました。
python-wordpress-xmlrpcを使うと、XML-RPCを経由して、ターミナルからWordPressの更新ができるようになります。

Welcome to python-wordpress-xmlrpc’s documentation! — python-wordpress-xmlrpc 2.3 documentation

ちなみにこの投稿は普通にWordPressのダッシュボードから手打ちで書いてます。

python-wordpress-xmlrpcのインストール

まずは「python-wordpress-xmlrpc」をインストールします。
例によってpipを使います。

pip install python-wordpress-xmlrpc

Admin権限がないユーザの場合は、以下のコマンドです。

sudo pip install python-wordpress-xmlrpc

Successfully installed python-wordpress-xmlrpc-2.3」というような感じのコメントが表示されれば、python-wordpress-xmlrpcのインストールは完了です。

python-wordpress-xmlrpcを使ってみるテスト

「python-wordpress-xmlrpc」のチュートリアルに従い、ターミナルからWordPressを更新してみます。
まずはターミナルに「python」と打ち込み、Pythonの対話モードに入ります。

おまじないを唱えます。

from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import GetPosts, NewPost
from wordpress_xmlrpc.methods.users import GetUserInfo

Clientクラスのインスタンスを生成します。
“mysite.wordpress.com”の部分は自分のWordPressのURL、“username”および“password”は自分のWordPressのユーザ情報を入れます。

wp = Client('http://mysite.wordpress.com/xmlrpc.php', 'username', 'password')

GetPosts()メソッドを使うと、記事の一覧を取得できます。
1回のリクエストで何件くらいのデータが取得できるのでしょうか?

wp.call(GetPosts())
# [<WordPressPost: My new title>, <WordPressPost: Hello world!>]

GetUserInfo()メソッドを使うと、ユーザの一覧を取得できます。

wp.call(GetUserInfo())
# <WordPressUser: hoge>

python-wordpress-xmlrpcを使って記事を投稿してみるテスト

チュートリアルに従って適当なエントリーを投稿してみます。
カテゴリーやスラッグ、投稿日時も指定できるようですが、とりあえず投稿するところまでやってみます。

post = WordPressPost()
post.title = 'こんにちは'
post.content = 'やるき!げんき!いわき!'
wp.call(NewPost(post))

見てのとおり、“post.title”でエントリーのタイトルを、“post.content”でエントリーの中身を記述しています。
日本語も普通に使えました。

wp.call(NewPost(post))」の部分は、Clientクラスのインスタンスに新規記事の投稿として先ほど作った“post”オブジェクトを渡していますね。
うまく投稿されると、記事IDの番号が返ってくるっぽいです。

投稿された様子を「記事の編集」画面で確認します。

python-wordpress-xmlrpc

タイトルとコンテンツの部分は、きちんと自分で書いたとおりに投稿されています。
カテゴリーやスラッグなどはデフォルト設定のものになっているようですね。

とりあえず、python-wordpress-xmlrpcを使うとターミナルから簡単にWordPressが更新できることがわかりました。

あわせて読みたい本

-プログラミング

Copyright© モバイルアプリ開発@つくば , 2017 AllRights Reserved Powered by AFFINGER4.