Wordpress
WordPressで自動挿入されるbrやpタグを無効化する方法【プラグイン不要!】
2019年05月27日 8:00
こんにちは!社員Aです👩
今回は、WordPressで自動挿入されるbrやpタグを無効化する方法をご紹介したいと思います。
もくじ
WordPressで勝手に改行されている!?
WordPressでサイト制作をする際に、pタグやbrを使っていないのに不自然に改行されてしまうことはありませんか?
実はWordPressには自動整形機能というものが実装されており、pタグやbrタグが自動的に挿入されてしまいます。
固定ページのHTMLで直接編集されているのに表示がおかしい!というときなどは、大抵この自動整形機能によるものです。
タグがわからない人にとっては便利な機能ですが、開発の際は弊害になってしまうのでこの自動整形機能を無効化する方法を今回はご紹介します。
WordPressによる自動整形機能を無効化する方法
前述したWordPressによる自動整形機能ですが、無効化するためにプラグインを使うのが手っ取り早いのですが、重くなってしまったり、無駄にプラグインを増やしたくない方はfunction.phpに追記するだけで無効化できる方法をおすすめします。
すべてのページで自動整形機能を無効化する方法
すべてのページで自動整形機能を無効化する方法は下記ソースをテーマのfunction.phpに追記するだけです。
remove_filter( 'the_content', 'wpautop' ); remove_filter( 'the_excerpt', 'wpautop' );
一部のページで自動整形機能を無効化する方法
例えば、アーカイブページでは自動整形を有効にして、固定ページでは無効化したい場合もあるかと思います。
一部のページで自動整形機能を無効化するためには、無効化したいテンプレートの「the_content」の記述のすぐ上に「remove_filter」を追加するだけです。
<?php remove_filter('the_content', 'wpautop'); ?> <?php the_content(); ?>
固定ページならpage.php、アーカイブページならarchive.phpに追記します。これにより、個別に無効化することができます。
remove filter関数について
ここは読み飛ばしていただいても構いませんが、せっかくの機会なので今回使用した「remove filter」関数についても追記しておきたいと思います。
「remove filter」関数は、特定のフィルターフックに付加されている関数を除去します。例えばデフォルトのフィルター関数を取り除き、別の関数に置き換えできます。
使い方
<?php remove_filter( $tag, $function_to_remove, $priority ); ?>
パラメーター
- $tag…除去したい関数が追加されているフィルターフック
- $function_to_remove…除去したいコールバック関数
- $priority…関数の優先順位(関数がフックへ追加されたときに指定された値)
先程使った自動整形機能の無効化の例で説明すると、
$tag = the_content (記事の本文を出力するフック)
$function_to_remove = wpautop(自動整形機能)
つまり本文中の自動生成機能のフィルター関数を取り除くという意味になります。
<?php remove_filter('the_content', 'wpautop'); ?>
関連記事
この記事を書いた人
社員A
入社8年目。フロントエンドエンジニア・デザイナーの社員Aです。 小動物が好きで、デグー・チンチラと暮らしています!トレンドの情報を発信できるようにがんばります☺