MarsEditで投稿するとHTMLがサニタイズしてしまう理由について

ブログエディタは去年の3月からMarsEditを使っている。メールを書くようにブログを投稿することができ、画像やフリッカー、ブックマークレットなどの挿入も簡単。もはやMacBookProと同様に手放せないツールになっているのだが、ここ数ヶ月前から、投稿にいれたHTMLのコードがサーバー側で勝手にサニタイズされてしまうようになった。

【 ” 】 ダブルクォテーションや 【 < 】 大なり?のマークとか 【 > 】とか、サーバーにあげたとたんに削除されてしまい、ブックマークレットや aタグでつくったリンクがことごとく意図したとおりに表示されなくなった。なのでその都度、WordPressの管理メニューから投稿を開いて、サニタイズされてしまったHTMLを打ち直すというとても面倒なことをやっていた。

当初、自分がMarsEditのどこかの設定を変えてしまったことが理由で、それを元通りにすれば直るのだろうと思っていた。ところが、探せど探せど、どこにもそれらしき設定はない。というか、いろいろ試したが改善せず。

しかも、ネットで【MarsEdit サニタイズ】とか、【HTML 消える 問題】とか検索しても、まったく表示されない。

そんな中、いろいろサイトをみていたら、MarsEditのフォーラムがあるのを発見。見ると、中の人がけっこうしっかりと答えているようなので、この件について投稿をしてみた。

MarsEdit


すると、3日ほどしてから、Danielさんから回答があった。

my html is sanitized - Red Sweater Forums


曰く、この問題はMarsEditの設定ではなく、PHP5.2の問題のようで、サーバー側でライブラリをアップデートするか、WordPressのLibXML2 Fixというプラグインで解決できるとのこと。

WordPress › LibXML2 Fix « WordPress Plugins


まずはWordPressのプラグインをインストールして試してみたのだが、うまくいかなかったため、そのため、サーバー側のPHPを5.2.8から5.3.6にアップデートして試したところ、無事に問題が解決した。よかったよかった。

ちなみに、私はCPIのACEというレンタルサーバーを利用しているのだが、PHPの切り替えは .htaccessファイルの記述を

AddHandler x-httpd-php528 .php

から、

AddHandler x-httpd-php536 .php

にするだけで解決する。

あと、このACEというプラン、月々3990円で無制限マルチドメインでWordPressのサイトをいくつか立ち上げても全然早いのでオススメです。