Python を使って WordPress の記事を自由に操作

Python を使って WordPress の記事を自由に操作

毎日、自動で更新させたい記事とかを考えていまして、実装することにしました。具体的にはブログ村のカテゴリの情報をまとめた記事を毎日更新させたいなぁと思ってます。

XML-RPCを使えば簡単

少し調べてみたところ、最近のワードプレスでは標準搭載されている XRM-RPC を使えば思いの外簡単にやりたいことができることが分かりました。

日本語記事ではこれを使った Python の例が見つかりませんでした。これを使うのが一番お手頃なので、他の例を使っている人は XML-RPC に切り替えることをおすすめします。

一応他の例を紹介しておきます。

REST API の例

Pythonを使ってWordpressに投稿する
はてブ数
みんな大好きWordpressはCMS/ブログアプリケーションの有名な実装例、ですが、APIを使って管理できるとちょっとしたときに便利です。CLIやエクスポ...

まぁ悪くはないですが、今回紹介する例のほうが圧倒的にお手軽です。

フォームを自動で操作する例

これはだめな例の紹介になるのですが、ちゃんとAPIが用意されているにもかかわらずスクレイピングで記事を投稿するというのはするべきではないでしょう。

python-wordpress-xmlrpc

ライブラリの名前は python-wordpress-xmlrpc です。

動作環境

  • WordPress 3.4以上、もしくは WordPress 3.0-3.3 に the XML-RPC Modernization Plugin いれたもの
  • Python 2.6以上 もしくは Python 3.x

インストール方法

pip でインストールできます。

このライブラリを使って、Wordpress の記事を色々操作してます。

Python から投稿記事を取得する

まさかのたったの2行で取得できちゃいます。超お手軽ぅ!

Python から記事を投稿する

なんとたったこれだけで新規のブログ記事を投稿できちゃうんですね。基本的には WordPressPost クラスのインスタンスを作成して、そのインスタンス変数に投稿情報を設定し、NewPostクラスの変数にぶち込んでインスタンスを作成してそれを xp.call 関数の変数に追加するだけ!わーお。

Python から記事を変更する

先ほどの GetPosts 関数などで取得した Post クラスのインスタンスに変更したい情報をインスタンス変数に代入して EditPostクラスのインスタンスを作って wp.call するだけ!超お手軽。

まとめ

このように、Python から XMLRPC を使えば、超お手軽に WordPress の投稿をいじれることが分かりました。

Github Repo

今回書いたコードを置いておきます。

xmlrpc.php の名前は変更しよう

余談ですが、xmlrpc.php の名前は変更しておいたほうがセキュリティの面から安心でしょう。単純にファイル名を変更するだけで大丈夫みたいです。

ブログランキング・にほんブログ村へ