これは地味にwordpress制作者を悩ませるテーマではないでしょうか。wordpressを触り始めた当初からこれに悩ませれていました。
wordpressはお節介な事に投稿ページや固定ページ(HTMLエディタ部分)の出力の際に勝手に<p>タグや<br />タグを挿入してしまいます。
このせいで文法的におかしいことになってしまったりしますよね。<br />が乱発されてたり、挿入位置も変だったりします。
またpに独自のスタイルをかましてると意図した場所以外でスタイルが適用されていたりでけっこう厄介だったりします。
この自動挿入のルールも曖昧?なんですよね。改行されていたりインデントされていると自動挿入されるなんていうのですがインデントも改行もないのにいきなり挿入される事だってありますし。
固定ページでHTMLを流し込む場合なんて余計ダルイし四苦八苦します。
解決方法 -1-
とにかく<p>タグの自動挿入を消したい、コードは自分で書くからという人はググるとすぐその手のカスタマイズ、プラグインがでてくるので問題ないかと思います。
因みに一番簡単な方法は以下になります。
functions.phpを修正
function.phpに以下のコードを好きな箇所に追記してください。有無を言わさず自動挿入されていた<p>タグや<br />タグが無効になります。
remove_filter('the_content', 'wpautop');
ただ、これだと今まで設定していた投稿ページの<br />等を全て再設定しないといけません。
また、wordpressを自分用のブログ、サイトで使うのであれば自分さえ気をつけていれば問題ないのですがwordpressをお客様に運用してもらう場合、お客様がビジュアルエディタを使用している事を念頭に置かねばいけません。
“エディターで改行いれてるのに効かないよ”なんて言われると困りますよね。
そもそもお客様に幾ら簡単なタグと言えど<p>タグや<br />タグをHTMLモードにして挿入し、整形して下さいっていうのもまたおかしな話。。。
解決方法 -2-
僕がやってるのは“投稿”機能を用いた更新が高いコンテンツには自動挿入を許可しpage.php等を用いた固定ページには許可しないというやり方をとっています。
そもそもの設計で“投稿”部分(single.phpとか)はある程度ソースが汚れても仕方がないと認識しているので2wayで処理を分けたほうが無理がないかなぁなんて気もします。
やり方も簡単。
<?php remove_filter('the_content', 'wpautop'); ?>
のコードをの前に呼び出せばOK。
twentytenをつかっているなら loop-page.phpに記述すれば大丈夫です。






