不正な文字コードを削除

いくつかの投稿に、不正な文字(いわゆる制御文字等の表示されない文字)が含まれていたようで、削除するプラグインを作成して対応してみました。

プラグインでやっていることは以下の様な内容です。

function filter_function_name($content, $post_id)
{
    $aryCode = array(chr(0x08), chr(0x1b), chr(0x1c), chr(0x1d));
    return(str_replace($aryCode, "", $content));
}
add_filter("content_edit_pre", "filter_function_name", 10, 1);

サンプルコードを組み合わせただけの簡単なコードです。

上記のプラグインは、保存時ではなくて表示時に動作するプラグインですので、一旦記事を保存し直す必要があります。

こういった処理は一括で行う方が楽ではありますが、表示時に直す方が自然影響範囲が狭いだろう…という事で記事編集開始時に変換をかけています。

というわけで、問題の記事を探さなければなりませんが、妥当性検証のためのツールが W3C のサイトで公開されていますので、それを利用します。

http://validator.w3.org/feed/

チェックツールで見つかった記事をひとつづつ保存し直していけば、ひとまずは対応完了です。

というわけで、一応の問題は解決したのですが、どうも原因は

  • WordPress内蔵のエディタ
  • 漢字変換
  • Safari

あたりに問題があるような気がしています。

というのも、最近、記事の編集中にエディタがひっかかる挙動をするようになったので。