Home > WordPress >


使われているフィルタを調べる

本文中にURLを書いたら、なぜだか、変な改行が入ってしまう。
ちくしょう、なにが悪いのかしら。

DBにはキレイに登録されているから、出力時の問題だということは分かるのだが、どのタイミングで改行が紛れ込むのか、あちこちソースを追っかけても分からなかった。
んで結局、出力直前にフィルタの一覧を見たり、特定フィルタを外したりすることで原因を探るという方法をとってみた。

例) the_content に add されたフィルタを調べる。
<pre>
<?php
//unset($wp_filter['the_content'][10]);  // 優先度が 10 のやつを消したり
//remove_filter('the_content','indent_entry_body');  // 名前で消したり
//$wp_filter['the_content'] = array();  // いっそ全部消したりもしましたよ、えぇ

// 見て調べる
var_dump($wp_filter['the_content']);
?>
</pre>
<?php the_content(); ?>

調べた結果、謎の改行の原因は /wp-includes/media.php の function autoembed の働きによるものだった。
記事本文中にURLがある場合、それがYouTubeのようなメディアコンテンツかもしれない、もしそうなら再生画面でも出しましょうか、と勝手に心配してくれる機能があるらしい。
http://codex.wordpress.org/Embeds
Check the “Auto-embeds” check box in Administration > Settings > Media SubPanel.
この機能をON (たぶんデフォルト) にしていると、なんでもないURLまでが解析処理にまわされて、その前後に改行が入っちゃうみたい。

いやいやいや、メディア設定なんて見たこともありませんでした。
悲惨だな悲惨だな悲惨だな~

コメント : 0件

コメント投稿

トラックバック : 0件

このページへのトラックバックURL
http://www.sweetwarp.com/66.html/trackback

Home > WordPress >

購読用フィード