【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をガッツリ書き込む固定ページでかなり重宝するテクニックです。ぜひ試してみてください! ━━━━━━━━━━━━━━━━━━━━

SUSUTANU

SUSUTANU(ススタヌ)と申します!
これは、作業用のメモや、思い出を昇華(消化)させるための小話を掲載しています。
カジュアルに運営しておりますので、どうぞよろしくお願いいたします。

当サイトに関するお問い合わせは、以下のフォームよりお願いいたします!