ホームページ制作アトリエ

心えがおホームページ制作 atelier(アトリエ)は、ホームページ・動画制作、教育ICT・アプリ開発、名刺・ポスター・チラシの作成を行っております。

勝手に改行する(自動で付くpタグ)削除する

カテゴリー:Wordpress
ワードプレスの投稿をしていると色々なところに勝手にpタグが付いてしまい、レイアウトが崩れてしまう事がよくあります。なのでこの機能を消すコードを書き加えました。 記事を出力しているテンプレートのthe_content()関数の前にコードを書き加えるだけです。 すると以下のようになります。 しかし、単一記事だけでなく、固定ページやその他のテンプレートが数枚あったりすると、全てのPHPのファイルにこれを記述するのも面倒です。この際そもそものpタグを付けるという機能事態を消してしまうことにしました。
add filter関数は指定したフィルターフックに、関数をフックしてくれる関数です。
パラメータは( $tag, $function_to_add, $priority, $accepted_args )となっています。 今回、問題となっているのは
wp-includes/default-filters.php
このファイルの以下のコードです。
つまり1行目の場合、the_content関数が$function_to_add がフックするフィルターで、wpautop関数がフィルターが適用された/en とき、呼び出される。という事になりますね。

wpautop関数は改行をbrタグに変換したり、pタグで調整したりする関数なので、この部分をコメントアウトしてしまいます。
その他にfunctions.phpにコードを書き加えるという方法もあります。
使用しているテーマフォルダにfunctions.phpがない場合は作成してください。 追加するコードは下記の一行だけです。 私はプラグインはあまり入れないようにしているので使っていませんが、プラグインで簡単に済ますならば「PS Disable Auto Formatting」というものがあります。(wordpress3.0以降)
ダッシュボードの「設定」→「自動整形」で<P>と<BR />タグを入れて欲しくない部分にチェックマークを入れるだけでOKというとても簡単な方法です。
さらに、PS Disable Auto Formattingには「過去記事の一括整形」が付いていますので、コレを使えば過去の記事も一気に自動整形禁止が出来ます。
しかし<P>や<BR />タグを削除して記事の自動整形を止めてしまうと、記事の表示が変わってしまうので、変えたくない方は自身で全ての過去記事に<P>や<BR />タグを入れ直さなければいけません。
逆に、カスタムフィールドの場合はこのwpautop関数を使えば自動改行が出来ます。