WordPress Tips

WordPress 自動で挿入されるpタグを除去する方法

2019-04-10

本記事にはプロモーションが含まれています。

WordPress 自動で挿入されるpタグを除去する方法

WordPressのクラシックエディタでは改行すると、勝手に<p></p><br>を挿入してくれる機能がありますね。でもhtmlを直接書いたり、ショートコードを使いたい時にも自動で挿入されてしまい、デザイン上妙な空白が開いたりしておかしくなることがあります。

テーマのfunctions.phpを編集する

pタグやbrを勝手に入れないようにするのに、プラグインを使う方法もありますがfunctions.phpに記述する方が簡単だと思います。

以下のコードをfunctions.phpに記述するだけでpタグやbrタグが自動で挿入されなくなります。

投稿や固定ページの本文(the_content)で、pタグが勝手に挿入されるのを無効にする方法です。

//本文のwpautop関数を無効にする
remove_filter(‘the_content’,’wpautop’);

the_excerpt フィルターフックを指定すると、投稿の抜粋でwpautopが無効になります。

//抜粋のwpautop関数を無効にする
remove_filter( 'the_excerpt', 'wpautop' );

これらを記述すると、投稿ページや固定ページの本文・抜粋でwpautopを無効にすることができます。ウィジェット、カスタムフィールド、テーマでカスタムされた場所など)に自動挿入される <p> タグは、この方法では除去できません。

固定ページのみ、特定のカスタム投稿タイプのみpタグ自動挿入を無効にする

上記コードを記述すると全てのwpautop関数が無効になってしまうので、投稿ページだけはpタグは挿入されてほしい、カスタム投稿ページだけはpタグを削除したいなど特定の箇所を制御したい場合などは以下のように指定します。

// pタグ制御
function wpautop_filter($content){
	global $post;
	$remove_filter = false;
	$types = array('page','info'); //無効にしたい投稿タイプを指定
	$post_type = get_post_type($post->ID);
	if(in_array($post_type,$types)) $remove_filter = true;
	if($remove_filter){
		remove_filter('the_content','wpautop');
		remove_filter('the_excerpt', 'wpautop');
	}
	return $content;
}
add_filter('the_content','wpautop_filter',9);

ショートコードに挿入されるpタグだけを無効にする

pタグは挿入されてもいいのだけれど、ショートコードの前後に挿入されるpタグは除去したい。。。ということもありました。

remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop', 99 );
//ショートコードにはpタグを挿入しない
add_filter( 'the_content', 'shortcode_unautop', 100 );

参考:
WordPressでエディタに自動生成されるタグ(<p>とか<br>)を制御する方法まとめ
【即解決】WordPressのショートコードがpタグで囲まれてしまうのを最も簡単に除去する方法

Contact Form 7でpタグが自動挿入されないようにする

Contact Form 7で生成されるコードにもpタグが入ってしまうことがあります。これを無効にするには、wp-config.phpに以下を記述します。

define( 'WPCF7_AUTOP', false );

注意するのは記述する場所。wp-config.phpの最後の方にある以下の記述よりも前に上記のコードを記述します。

/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

wpautopをページごとに無効にできるプラグイン Toggle wpautop

Toggle wpautop

Toggle wpautopプラグインは3年ぐらい更新されていません。
またToggle wpautopは、ブロックエディター(Gutenberg)をサポートしていません。Classic Editorプラグインを利用している場合は有効です。

Toggle wpautopの使い方はシンプルです。

プラグインを有効化後、設定>投稿設定にToggle wpautopの設定メニューがあります。

wpautopを無効にする切り替えボタンを表示させる投稿タイプにチェックを入れます。

チェックを入れた投稿編集ページの公開パネル内に「Disable wpautop」が表示されます。wpautopを無効にしたい場合はチェックをいれます。

Advanced Editor Tools(旧TinyMCE Advanced)でもwpautop無効化あり

Advanced Editor Tools

Advanced Editor Toolsブロックエディターでクラシックエディター機能を使うことができるプラグインです。

以下の項目にチェックを入れると投稿記事の本文中のpタグを無効にできます。

今月キャンペーン特典があるサービス

  • エックスサーバー
    利用料最大30%キャッシュバッグ月額693円&ドメイン永久無料 - 2024年5月1日(水)12:00まで
  • ConoHa WING
    WINGパック36ヶ月で月額678円 53%OFF ドメイン2個無料 - 2024年4月19日(金)16:00まで
  • カラフルボックス
    ドメイン永久無料特典とBOX2以上の月額費用が50%OFFのクーポンコード「SERVER50

-WordPress Tips