【WordPress】固定ページに勝手に入るpやbrを、そのページだけ無効化する方法
2025年10月12日WordPressでHTMLを直接書いて固定ページを作っていると、こんな経験ありませんか? ・保存したら勝手に
タグで囲まれてレイアウトが崩れた
・改行しただけなのに
が挿入されて余白がガタガタになった
・LP(ランディングページ)を作りたいのに整形が邪魔をする
これ、WordPressの「wpautop(ダブリューピー・オートピー)」という自動整形機能のしわざです。
本文中の改行を自動で
や
に変換してくれる、普段はありがたい機能なんですが、コードをきっちり書きたいページでは完全に余計なお世話。
かといって、wpautopをサイト全体でオフにしてしまうと、今度は普通の投稿記事の改行が全部消えて悲惨なことになります。
そこで今回は「特定のページだけ」自動整形をオフにする方法を紹介します。
■ 仕組みはシンプル
やることは2つだけです。
・functions.phpにコードを追加する
・自動整形をオフにしたいページの本文に、目印となるコメントを1行書く
目印が書かれているページだけwpautopが無効になり、それ以外のページは今まで通り動きます。
■ functions.phpに追加するコード
子テーマのfunctions.phpに、以下をそのまま追加してください。
/* ——————————
本文に があるページだけ
自動整形(wpautop)を無効にする
—————————— */
function custom_remove_wpautop( $content ) {
if ( strpos( $content, ‘‘ ) !== false ) {
// 目印があったら自動整形をオフにする
remove_filter( ‘the_content’, ‘wpautop’ );
// 目印のコメント自体は出力から消しておく
$content = str_replace( ‘‘, ”, $content );
} elseif ( ! has_filter( ‘the_content’, ‘wpautop’ ) ) {
// 目印がないページでは自動整形を元に戻す
add_filter( ‘the_content’, ‘wpautop’ );
}
return $content;
}
add_filter( ‘the_content’, ‘custom_remove_wpautop’, 9 );
ポイントは最後の「9」という数字。
wpautopは優先度10で実行されるので、それより先(優先度9)にこの関数を動かして、wpautopが走る前に解除する、という流れです。
また、elseif以降の処理も地味に重要です。
一度wpautopを解除すると、同じページ内で後から表示される別のコンテンツ(関連記事の抜粋など)にも影響が残ることがあるため、目印がないコンテンツでは自動整形を元に戻すようにしています。
■ 使い方
自動整形をオフにしたいページの本文(コードエディタ or カスタムHTMLブロック)の先頭に、これを1行書くだけです。
HTMLのコメントなので画面には表示されませんし、上のコードで出力前に削除されるのでソースにも残りません。
■ まとめ
・WordPressが勝手に
や
を入れるのはwpautopという自動整形機能
・サイト全体でオフにすると普通の記事が崩れるのでNG
・functions.phpと目印コメントの組み合わせで、必要なページだけピンポイントで無効化できる
LP制作や、HTMLをガッツリ書き込む固定ページでかなり重宝するテクニックです。ぜひ試してみてください!
━━━━━━━━━━━━━━━━━━━━