WordPressには「wpautop」という関数があり、改行を自動的にbrタグに変換したり、いい具合に本文をpタグで囲ってくれたりと、一件便利なのですが、stlyeを設定しているpタグが消えたり、勝手にbrが挿入されレイアウトが崩れるなど、予期せぬ挙動をしてくれます。
上記ページにもある通り、無効にするには下記コードをfunctions.phpに記載すれば無効にできます。
remove_filter( 'the_content', 'wpautop' );
これだと投稿、固定ページ、カスタム投稿含み全てにおいて無効になります。
運用上、それで問題ないケースであればいいのですが、
更新するコンテンツである投稿タイプやカスタム投稿をクライアントが更新していく際に、エンターキーの改行にて改行したほうが良かったり、わざわざpタグを打つ必要が無い方がいいケースが多いと思います。
そのようなケースのために、「固定ページだけwpautopを無効にして、投稿やカスタム投稿は引き続き有効にする」というコードをご紹介します。
サンプルコード
以下をfunctions.phpへ記載します。場所は任意の箇所へ&バックアップは忘れずに取っておきましょう。
/* * 固定ページのみ自動的に付与されるpタグやbrタグを無効 */ function disable_page_wpautop() { if ( is_page() ) remove_filter( 'the_content', 'wpautop' ); } add_action( 'wp', 'disable_page_wpautop' );
有効と無効にした違いと管理画面の見え方
この「wpautop」が有効とときの見え方と無効の見え方を見比べてみます。
以下が有効、つまりデフォルトの見え方です。
そして以下が無効にしたときの見え方。
無効にすると改行がなくなっているのがわかります。HTMLタグを利用していないテキストのため、ちょっとみえづらいですが、HTMLコーディング→WP構築というフローの場合は余計なレイアウト崩れや、クライアント編集による崩れなどの恐れがなくなるので、クライアントワークには説明前提の上、導入するといいかもしれません。
ちなみに、上記の画像の管理画面の見え方です。
管理画面では改行をしていますが、実際のフロント画面には反映されていないことがわかります。