WordPressエディターが勝手に入れるpタグbrタグを入れさせない

Web制作
WordPressエディターが勝手に入れる「p」「br」タグを入れさせない方法を知る

WordPressビジュアルエディターを使用すると、自動的に「p」タグ「br」タグを入れてくれてありがたいこともあります。

しかし、htmlコードを直接書いて制作することもあります。

ビジュアルエディターで作成した場合に「p」タグや「br」タグを入れてくれるのだろうと思っていました。

ところが、htmlコードを直接書くテキストエディターで制作していても、「p」タグと「br」タグが勝手追加される場面がありました。

テキストエディターで制作しているので、コード上には「p」タグも「br」タグも存在しません。しかし、レイアウトが崩れてしまうので、ページのソース表示を見ると、入っていないはずの「p」タグ「br」タグが入っています。

この場合、エディターで何度調整してもダメなので、WordPress側の設定で対策するしかありません。

解決法1:functions.phpで対処する


//pタグとbrタグの自動挿入を解除
remove_filter('the_content', 'wpautop');

以上を、追加して入れましょう。

固定ページの特定のページに対応させたい場合はページIDを指定して解除する方法もあります


add_action( 'wp_head', function() {
  if (is_page( array(1, 2, 3) )) {
      // 本文
      remove_filter('the_content', 'wpautop');
      // 抜粋
      remove_filter('the_excerpt', 'wpautop');
  }
});
if (is_page( array(1, 2, 3) )) {

の1,2,3 の部分に対応させたいページのID入れて設定します。

解決法2:使っているテンプレートで対処する

特定のテンプレートで表示する頁だけ対処したい場合は、テンプレートにコードを追加して対処しましょう。

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

というコードを、テンプレートのループで表示させているコードに追加するとp.brタグの自動入力は行われなくなります。

設定する場所は、

<?php the_content(); ?>/*の前に*/
<!--本文ここから-->
            <?php if(have_posts()): ?>
            <?php while(have_posts()): ?>
                <?php the_post(); ?>
                <?php remove_filter ('the_content', 'wpautop'); ?>/*ここにいれる*/
                    <?php the_content(); ?>
            <?php endwhile;?>
            <?php else: ?>
              
            <?php endif; ?>

    <!--本文ここまで-->

wpautop 関数の機能をストップさせている

WordPressには、ビジュアルエディターで文章や改行を行うとpタグやbrタグを補って入力してくれる「wpautop 関数」があるのだそうです。

今回の処置は、この「wpautop 関数」を機能停止にする手続きです。

実際には便利でありがたい機能なので、全頁機能停止にするか、特定のページだけ機能停止にするかを考えて設定しましょう。