自動挿入されるpタグを挿入させたくない。
WordPressには、投稿や固定ページで2行以上の改行を自動的にpタグに変換する機能(auto paragraph)が標準装備されています。
この機能、便利に感じることも多くあるのですが、場合によっては不便に感じることも多々あります。
個人的にはあまり気にならないのですが、中にはこの機能を停止させたいと考えている方が多いようなので、機能を停止させる方法をご紹介したいと思います。
基本的にコピペだけで機能を停止させることができますので、初心者の方でも簡単です。
自動挿入されるpタグを挿入させない方法
それでは、Pタグを自動挿入させないカスタマイズをご紹介します。
Pタグを自動挿入させないカスタマイズには、全ての投稿と固定ページでPタグを自動挿入させない方法と、投稿ページのみPタグを自動挿入させないなど個別に指定する方法とがあります。
個別に見ていきましょう。
サイト全体ででPタグを自動挿入させない方法
以下のコードをfunctions.phpにコピペしてください。
add_action('init', function() {
remove_filter('the_excerpt', 'wpautop');
remove_filter('the_content', 'wpautop');
});
add_filter('tiny_mce_before_init', function($init) {
$init['wpautop'] = false;
$init[‘apply_source_formatting’] = true;
return $init;
});
このコードをコピペすることで、Pタグの自動挿入を停止させることができます。
個別に挿入させない方法
例えば、固定ページ毎にテンプレートが異なる場合などで、その一部のみPタグの挿入を停止させたい場合があるかもしれません。
そんな時は、そのテンプレートファイルのPタグの自動挿入を停止させたい箇所の直前に以下のコードをコピペしてください。
<?php remove_filter('the_content', 'wpautop'); ?>
上記のタグを設置すると、それ以降の部分でPタグの自動挿入が停止されます。
基本的に以下の様な記述になるかと思います。
<?php remove_filter('the_content', 'wpautop'); ?>
<?php the_content(); ?>
特定の投稿タイプでPタグの自動挿入を停止させる方法
例えば、投稿ページのみPタグの自動挿入を停止させたいケースですね。
そんな場合は、以下のコードをfunctions.phpにコピペすればOKです。
add_filter('the_content', 'wpautop_filter', 9);
function wpautop_filter($content) {
global $post;
$remove_filter = false;
$arr_types = array('page');
$post_type = get_post_type( $post->ID );
if (in_array($post_type, $arr_types)) $remove_filter = true;
if ( $remove_filter ) {
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
}
return $content;
}
上記のコードでは、固定ページでPタグの自動挿入を停止させています。
$arr_types = array('page');
上記の【page】で投稿タイプを指定しています。
この部分にPタグの自動挿入を停止させたい投稿タイプを記述してください。
複数の投稿タイプを指定する場合は、以下の様に記述すればOKです。
$arr_types = array('page','○○','○○');
【○○】の部分には、投稿タイプを指定してください。
まとめ
WordPressの自動挿入されるpタグを挿入させない方法をご紹介しました。
私は既存サイトのWordPress化を請け負って言うのですが、その時にPタグの自動挿入を停止させることが多くあります。その他にも利用するシーンは以外と多いかと思いますので、この機会にやり方を覚えておきましょう。
このコンテンツでご紹介しているコードは【WordPressの自動挿入されるpタグを削除する方法】のコードを引用させていただきました。
いつも役立つ情報をありがとうございます。
記載されているコードに気になる所がありましたのでご連絡させていただいました。
下記のページ内の
https://takayakondo.com/wordpress-auto-p-delete/
サイト全体ででPタグを自動挿入させない方法のコードの下記の部分
$init[‘apply_source_formatting’] = ture;
ですが、正しくは
$init[‘apply_source_formatting’] = true;
でした。
今のWPのバージョンではエラーが出るようです。
trueがtureになっています。
そのままコピペした所、エラーが出ました。
$init[‘apply_source_formatting’] = ture;でネットサーチしたら、
同じ間違いをしている方が結構いたので、
みなさんどこからか多分コピペして間違えたままのようでした。
ご指摘ありがとうございます。
確かにコードが間違っておりました。
有益なご指摘に感謝いたします・