2006-12-14
くもり

wp_insert_post() 関数修正

yuriko による 02:40:00 の投稿
カテゴリー: WordPressハック

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 の新バージョンはリリースできないよぉ〜〜。どうにかしてコアはそのままでいい方法を見付けないと。

コメント・ピン通知 »

トラックバック・コメントはありません。
※スパム対策プラグインの影響により、すぐにトラックバックが反映されない場合があります。お手数ですが、半日ほど待ってみてください。

上に戻る

コメント投稿

※発言の責任を明確にするため「名無し」「通りすがり」「匿名希望」等の匿名は不可とします。捨てハンドルでもいいので必ず名乗ってください。
XHTML (使えるタグ): <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt=""> .
※スパム対策プラグインの影響により、すぐにコメント内容が表示されない場合があります。お手数ですが、半日ほど待ってみてください。

上に戻る