Wordpressの編集画面でpタグの自動挿入を解除する方法

Wordpressの編集画面でpタグの自動挿入を解除する方法

Wordpressの編集画面でpタグの自動挿入を解除する方法

Wordpressの編集画面でpタグの自動挿入を解除する方法

Wordpressの投稿・固定ページの画面における小技です。

基本仕様となるpタグの自動挿入機能が邪魔になる場合に、その機能を停止する方法です。

この自動挿入解除指定は以下の様に様々な指定ができます。

・固定ページのみ
・投稿ページのみ
・固定ページのテンプレート別
・複数の投稿タイプ

バージョン4系の編集画面

バージョン5からは新しい編集画面になりますが、それ以前の編集画面に慣れている人が多いと思います。

本文やタグを入れる欄は「ビジュアル」と「テキスト」のタブに分かれていますよね。

特にWEBサイトの各コンテンツページは、固定ページにタグを入れて作る事が多いはずです。

「テキスト」のタブの方を開いて、HTMLタグ入りのコードをコピペしたり直接入力したりします。

※それに対して「ビジュアル」タブの方はWordの様な文章入力が中心ですね。

HTMLページのWordpress化の際に起こる事

案件の中には、デザイン元となるHTMLページの通りにWordpressサイトにリニューアルする事がよくあります。

本来はHTMLページのデザイン通りにWordpress化する事ができます。

しかし固定ページにコンテンツのタグコードをそのまま入れても、表示がずれる事がよくあります。

この原因の中で一番多いのが、pタグが自動で挿入されてしまう事です。

pタグが自動で入る仕様

Wordpressの編集画面は、自動的にタグが挿入される機能が付いています。

その機能が駆使される事で、直接タグを入れなくてもいいようにサポートされているのが「ビジュアル」タブですね。

これは「テキスト」タブの方でも同じような事が言えます。

2個の改行でpタグが入る

一般的にEnterなどで改行を2個以上入れると、自動でpタグが入る仕様になっています。

この仕様がそのままだと、HTMLページで構成したタグをそのまま固定ページにコピペした際、pタグが入り込んでしまう場合があるのです。

自動でpタグが入ってしまう事が、表示ズレの原因の一つなのですね。

後からチェックしてpタグが入った箇所を消せば問題はないのですが、この自動挿入機能を停止させておけば手間が掛かりません。

自動挿入されるpタグを挿入させないようにする

そこで本記事では、pタグを自動挿入させない様にする方法をご紹介します。

これには主に、以下2つの方法があります。

自動挿入を解除する方向性

・全ての投稿と固定ページで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'] = ture; return $init; });

このコードをコピペすれば、固定・投稿ページのどちらも、pタグは自動挿入されなくなります。

自動挿入解除を個別に指定する

例えば固定ページ毎に違うテンプレートを使っていて、そのテンプレートによってはpタグ挿入を解除したいというケースです。

そんな時は、以下のコードをそのテンプレートファイル上のpタグの自動挿入を停止させたい箇所の直前に貼りましょう。

該当テンプレートphpファイル内

<?php remove_filter('the_content', 'wpautop'); ?> 以下に下の様なコードが続きます <?php the_content(); ?> //この本文を入れる直前に入れる

特定の投稿タイプでpタグの自動挿入を停止させる方法

例えば固定ページのみpタグの自動挿入を停止させたいケースの場合、以下のコードをfunctions.phpに貼りましょう。

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タグの自動挿入を停止させたい投稿タイプとなります。

投稿ページのみ停止させるなら、'single'と入れる訳ですね(あまりこの必要は無いと思いますが)。

複数の投稿タイプを指定する場合は、以下の様に複数設定すればOKです。

$arr_types = array('page','○○','○○');

'○○'の部分に投稿タイプを指定しましょう。

この記事をシェアする

一押し人気コーナー紹介

Wordpressテーマカスタマイズ系記事