WordPress導入

2009年10月22日 02:31

 ブログシステムをpyblosxom+自前のバックエンドから、WordPressに変更してみた。WordPressはデフォルトではMySQLをデータベースとして使うけど、今回はプラグインを入れてsqliteを使う構成でセットアップ。

 sqliteを入れたのは、ファイルのコピーだけでなにも考えずにバックアップができるというのと、パフォーマンス的に有利なんじゃないかなー、という理由。テキストデータしか入れる気はないので、データベースサイズはせいぜい数MBだし、ファイルキャッシュが効けば結構速くなるんじゃないの? とか考えてるんだけど、実際どうなってるかはちゃんと測ってないので不明。

 ちなみに、WordPressをsqliteを使うプラグインはこれ(PDO (SQLite) For WordPress)。基本的には付属ドキュメント通りにセットアップすればOK(WordPressのwp-contentディレクトリ以下に配布ファイルをコピー→wp-config.phpファイルに「define(‘DB_TYPE’, ‘sqlite’);」を追加)。Web上の情報では、ソースをいじったりする必要があるという話が書いてあるものもあったけど、自分が試したバージョン(WordPress 2.8.4+PDO For WordPress 2.6.1)では設定ファイル以外のソースの変更は不要だった。

 ただ、suexecを使っていない環境ではもちろんデータベースディレクトリおよびデータベースファイルを作成できるようにパーミッションを変更しておく必要がある。データベースファイルはwp-contentディレクトリ以下に「database」というディレクトリが作成され、その中に作成されるので、一時的にwp-content内にWebサーバーを動かしているユーザー権限でディレクトリを作成できるように設定しておく必要あり。

pyblosxomの記事のインポート

 でもって、過去のpyblosxomの記事のインポートなんだけど、直接はインポートできないので、過去の記事からインポート用のファイルを作成する必要がある。WordPressの「Importing Content」ページでは変換用スクリプトを用意してインポートする方法を紹介するページが紹介されているんだが、このスクリプトは日本語環境だと微妙な気がしたので、これを参考にPythonで書き直してみた。

 ただしこの変換スクリプト、カテゴリと記事コンテンツ、投稿日はインポートできるのだがタグとエントリのURL情報は無視してくれるのが困りどころ。おかげで過去記事のリンクが切れる……。カテゴリについては、.htaccessに次の1行を追加すれば解決なのだが、リンク切れはさぁどうしようかねぇ。

RewriteEngine On
RewriteBase /
RewriteRule ^(apple|bluegriffon|develop|fsm|handbrake|s|slashdot|twitter) category/$1 [R=301,L]

# BEGIN WordPress
 :
 :

個別記事のタイトル設定ができない件についてorz

2009年4月10日 18:45

 このblog(?)の記事のPermlink、記事個別ページのタイトルがちゃんと設定されていないことに気付く。

 ということでPyblosxomのドキュメントを見たんだけど、なんと(ドキュメントを見る限りでは)標準では記事個別ページのタイトル(<title>タグ内に設定するタイトルね)にその記事のタイトルを入れることができないっぽいorz。自前でプラグインを書けということか。

 このblog(?)は、記事レンダリングをPyblosxomで、記事編集などのバックエンドはfsmというシステムでやっているんだけど、どちらも良い言い方をすると自由度が高い、悪い言い方をすると色々と面倒くさいけど、まぁ修行wということで(それでで面倒くさくなって修正しないままだらだらと、という話もあるが……)。

 しょうがないのでとりあえずタイトルを入れないままごまかす。ToDoに入れておこう。