WordPressで自動挿入される<p><br>をプラグインを使わずに無効(消す)方法

2017年1月12日 WordPress

wordpressでサイトする際に一旦、HTMLソースコードだけでCSSなどの調整をしそのあとでwordpressの固定ページに反映し、必要プログラムを加えて調整していきます。しかし、固定ページへHTMLコードを反映し確認すると、行間やオブジェクトの間隔がずれることがあります。ソースコードを確認すると、入れたはずのない<p>や<br>が挿入されています。WordPressには自動整形機能と言って入力を補助してくれるとてもありがたく迷惑な機能があり、これのおかげでWordPressで<p><br>のタグを自動的に挿入されてしまいます。配置はすでに調整しているので、今更<p><br>を操作されれても迷惑なのででこれを無効にする方法を紹介します。

プラグインでの対応をよく見かけるのですが、何年も更新されずうまく動作しないものや、使うと別の不具合が出るものなどうまくいきません。

有名なもので「TinyMCE Advanced」がよく紹介されていますがどうも挿入じゃなく削除される対策のようで違うみたいです。ただ、プラグインをつかわくても簡単に対応することができます。

pege.phpなどのテンプレートで管理画面で入力したページの情報を出力する。

<?php the_content(); ?>

の前に自動形成を排除するフィルターを追加し

<?php remove_filter('the_content', 'wpautop'); ?>
<?php the_content(); ?>

と書くだけです。

機能自体が必要ない全体的に自動形成せずに出力したい場合は、functions.phpに次の一行を追加するだけです。

remove_filter('the_content', 'wpautop');