wp-mta を全面的に書き換えていますが、div タグや br タグに付与した class 属性が消えてしまうという問題がありました。どうやら、wp-includes/functions-post.php にある wp_insert_post() 関数で apply_filters('content_save_pre', $post_content); を実行した段階で消されるようです。
このフィルターは wp-includes/default-filters.php にて、wp-includes/functions-formatting.php にある balanceTags() 関数が呼ばれるように定義されています。
そこで、このフィルターが実行されないように、remove_filter() で balanceTags の呼び出しをやめるようにしてみましたが、これは失敗しました。仕方なく、wp-includes/functions-post.php をいじって apply_filters('content_save_pre', $post_content); のある行をコメントアウトしてしまいました;-) これで、意図通りの動きをするようになりました。
ところが、wp_insert_post() 関数は XMLRPC 経由で投稿するときも呼ばれるわけで、ウェブログクライアントソフトで投稿するときも、div タグに設定した class 属性が消えるんでしょうか……。もし消えるなら、クライアントソフトは使えないということになりますし、消えないなら、XMLRPC 経由での投稿処理を解析することで、メール投稿でも class 属性を消さないようにできますね。
でも、WordPress コア (functions-post.php) をいじる必要があるなら、wp-mta の新バージョンはリリースできないよぉ〰。どうにかしてコアはそのままでいい方法を見付けないと。
