[WPCH vol.02] フィルターをハック。投稿内容を valid に保つには
WordPress の投稿画面は、TinyMCE などによりとても高度なエディタになっています。ただ、タグ入力を手打ちで出来る場合には、若干というか、かなりいただけない仕様があります。それが wpautop フィルターです。
wpautop フィルターは、投稿内容などを整形し、p 要素でマークアップしたり、改行を br 要素に置換するなど、ただのテキストを入力している分には(たぶん)便利なものですが、不用意に改行すると悲しいことになったり、ともかく、投稿内容をそのまま出してよ!という要求をあっさり無視してくれます。
そこで、このフィルターを処理しないようにするために、remove_filter ('the_content', 'wpautop');などを function.php に記述しておくことで対処可能、のはずだったのですが、なぜかWP2.5 日本語版でうまくいきません。未検証なのですが、どこかで何かが悪さをしていて、removeできないようです。このままでは valid かつクリーンなコードが書けない!
というわけで、根本的に処理を止めてしまえ、というわけで、wp-dir/wp-includes/default-filters.php をいじります。
// 110行目付近
add_filter('the_content', 'wpautop');
add_filter('the_excerpt', 'wpautop');
// 上記2つをコメントアウト
// add_filter('the_content', 'wpautop');
// add_filter('the_excerpt', 'wpautop');
これで投稿内容に wpautop フィルターがかからなくなり、投稿(と抜粋)に入力したテキストが、そのまま使われるようになります。当サイトのように、pre 要素などでコードを多く書くとか、タグは手打ち、と考えている人で、同じように remove filter がうまくいかない、という場合に試してみてください。


Leave a Reply