WordPressで勝手に入るPタグを削除する方法。テンプレート編集とプラグインでの対処法。

シェアする

WordPressの固定ページや記事で改行をすると勝手に入ってしまうPタグ。
これ困る時がありますよね。

今回は、そんなPタグを削除(勝手につかなくする)方法を紹介します。

スポンサーリンク




WordPressで勝手に入るPタグを削除する方法。テンプレート編集とプラグインでの対処法。

どうしてPタグは入ってしまうのか

これはプラグインやテーマの仕業ではなくて、自動整形機能(wpautop)というWordPress本体がもつ機能です。

ビジュアルエディタでは、Enterキーで段落

タグ、Shift+Enterキーで改行
タグが自動で入ります。

テキストエディタでは、Enterキー2回押すと段落

タグ、Enterキー1回で改行
タグが入ります。

クライアントのサイトを制作する際は、これは便利な機能です。
主にクライアント側ではビジュアルエディタを使う場合が多いですし。

でも固定ページとか、クリエイター側で作業をする時は、とても邪魔なんですよね。

Pタグを削除したり、条件別に付けたりするテンプレートの編集方法

やり方は2通りです。

テンプレートで編集

固定ページだけPタグを勝手につけない。
記事ページだけPタグを勝手につけない。
こういう方は個別にテンプレートを編集します。
シンプルで簡単な方法ですが、子テーマを使用している場合などは注意が必要です。
例えばSimplicityの場合ですと固定ページの編集テンプレートはpage-page.phpとなっています。

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

固定ページや記事のテンプレートには記事の呼び出しのところに<?php the_content(); ?>というコードが記述されていますので、その上に上記のようなコードを貼り付けるだけです。
大抵の場合は固定ページならばpage.php
記事ページですとsingle.php
カスタマイズ機能を持ったテーマ等ではループ部分のテンプレートが複雑なものが多いです。

アップデート機能のあるテーマを使っている場合、テーマのカスタマイズをしても、バージョンアップをするとカスタマイズ部分が消えてしまいます。
こういう場合は子テーマを作り、そこでカスタマイズすれば親テーマをバージョンアップしても消えてしまうことはありません。

functions.phpで編集する

funcitons.phpでPタグが入らないように指定できます。

■すべてのページにPタグが入らないようにする


いちばんシンプルな方法です。functions.phpに下記の2行を加えます。

remove_filter('the_content', 'wpautop'); // 記事全般でPタグが入らないようにする
remove_filter('the_excerpt', 'wpautop'); // 抜粋でPタグが入らないようにする

■投稿タイプを指示してPタグが入らないようにする


下記のコード5行目で投稿タイプを指定することが出来ます。
下記の例ではpost(記事)となっています。
pageに変更すれば固定ページとなります。複数指定もできます。

add_filter('the_content', 'wpautop_filter', 9);
function wpautop_filter($content) {
global $post;
$remove_filter = false;
$arr_types = array('post'); //ここで投稿タイプを指定する
$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;
}

カスタム投稿タイプを指定する場合は下記のようになります。

add_filter('the_content', 'wpautop_filter', 9);
function wpautop_filter($content) {
global $post;
$remove_filter = false;
$arr_types = array('カスタム投稿名を入れる'); //カスタム投稿を指定する場合
$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タグを削除する方法

TinyMCE Advanced

プラグインでPタグが入らないようにすることも可能です。
一番有名なのは、プラグイン「TinyMCE Advanced」を使う方法です。ご存知エディターの使い勝手をよくするプラグインですね。
「TinyMCE Advanced」の設定で”Keep paragraph tags” にチェックを入れることで勝手に入らなくなります。

プラグイン「Toggle wpautop」

プラグインをインストールして有効化すると、ダッシュボードの投稿設定に「toggle pwautop」という設定箇所があり、投稿タイプ別にチェックを入れることで設定ができます。
また、投稿画面にもオンオフ機能がついていますので、他のページは今まで通りPタグを付けておきたいとか、このページだけは自動整形機能を使いたくないなんてことも可能です。

まとめ:テーマやブログを作ったらすぐに設定したい

ブログなどで大分記事が溜まってきてから、自動整形をオフにすると、全てのPタグが消えてしまい、面倒な事になりかねません。
テーマを新しく作ったり、ブログを新規で作る場合は良いですが、そうでない場合は計画的に使い分けしましょう。

The following two tabs change content below.

sawaking

川崎フロンターレ(サッカー)と犬をこよなく愛するクリエイターです。 フリーランス(アートディレクションやコンサルタント)を15年続け、現在は恵比寿にある企業のメディア部門にてディレクターをしています。 企業に務めながらフリーランス時代の遺産を副収入にぬくぬくと生きています。 このブログは、基本的にフリーランスの仕事やアフィリエイトの運営・WordPressのカスタマイズ等について書いていこうと思います。
スポンサーリンク




シェアする

スポンサーリンク