Syntaxhighlighter for Movable TypeのテキストフィルタをWordPressで実現する

WordPressに移行したけど、以前としてまだテキストフィルタを移植に対応していない。ところでMovable TypeとWordPressではそもそもやり方が違う。

Movable Typeでは記事ごとにテキストフィルタを選択して適応することになっている。テキストは記事の内容を任意のルールで(htmlに)変換してくれる。PukiWiki用のテキストフィルタを作成したりするとエントリがPukiWiki形式でかけるようになる。

WordPressの場合は基本的に記事ごとにテキストフィルタを選択するということはしない。有効なプラグインで”the_content”フィルタを実行することによって記事の文字列を変換することができる。

実はどっちかというとMovable Typeのやり方が好きである。何故かというとWordPressの場合すべての記事に対して有効にしているプラグインの”the_content”フィルタが実行されることになるのでモノによっては処理が重くなるし、複数の”the_content”が競合して意図しないhtmlが出力されるおそれがある。

競合に関しては、フィルタのpriorityによって適応される順序を制御できるがプラグインの開発者が既存のプラグインを意識して適切なpriorityを設定するのもなかなか難しい。

以上の理由により、the_contentフィルタがあまり好きじゃない派だったんだが、今回はこのthe_contentフィルタに助けられることになった。

自分は実は”Syntaxhighlighter for Movable Type”の作者なんだが、WordPressには似たようなプラグインがいくつかあるので今回はSyntaxHighlighter Evolvedというプラグインを使うことにした。

さて、既存のSyntaxhighlighter for Movable Typeで書いてしまったエントリに対してSyntaxHighlighter Evolvedが動作するように書き換えるフィルタを作成した。(最初から同じ仕様にしておけばよかったと後悔)

もし、Syntaxhighlighter for Movable Type +Movable Typeで書いてたブログをWordPressに以降するという人が他にいたら参考にしてください。

しかし最近の記事はほとんどpukiwikiで書いてたのであまり効果がなかったという。。。