WordPressで自動的に追加される<p>や<br>タグを削除する方法

WordPressで作成したページが思った通りの表示がされず、余分な空白があったり予期せず改行されてたりすることがあります。
そんな時はおおよそWordPressが自動的に追加する<p>や<br>タグが原因であることが多いです。
これらのタグは、WordPressがページを公開する前に記事の内容をフィルターフックしてタグを追加する処理があるからです。

add_filter( 'the_content', ‘wpautop’ ); // pタグを付加する関数

このタグを追加する処理を取り除けば自動的に追加することはなくなります。
サイト全体に適用するにはfunction.phpにこのフィルターフックを取り除く処理を書きます。
function.phpに以下を追加します。

remove_filter( 'the_content', 'wpautop' ); // 本文にpタグを付加しない
remove_filter( 'the_excerpt', 'wpautop' ); // 抜粋にpタグを付加しない

個別のページ毎にフィルターフックを取り除くには、対象のテンプレートに記述します。
例えば投稿ページの場合はsingle.phpに以下のように追加します。

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

また、管理画面のビジュアルエディタにも反映させるには以下のフィルターフックを追加して取り除きます。

function modify_mce_options ( $init ) {
    $init['indent'] = true;
    $init['wpautop'] = false;

    return $init;
}
add_filter( ‘tiny_mce_before_init’, ‘modify_mce_options’ );

自動的にpタグを付加する処理を取り除くのはサイト内の投稿ページがそれほど多くないか、サイトを作成する最初の段階で行うことを推奨します。既に多くの投稿ページがある場合は、pやbrタグが付加されている状態で整形されていると思うので状況に応じて適切に取り入れてください。

シェアする