WordPressの固定ページや記事で改行をすると勝手に入ってしまうPタグ。
これ困る時がありますよね。
今回は、そんなPタグを削除(勝手につかなくする)方法を紹介します。
WordPressで勝手に入るPタグを削除する方法。テンプレート編集とプラグインでの対処法。
目 次
どうしてPタグは入ってしまうのか
これはプラグインやテーマの仕業ではなくて、自動整形機能(wpautop)というWordPress本体がもつ機能です。
タグ、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タグが消えてしまい、面倒な事になりかねません。
テーマを新しく作ったり、ブログを新規で作る場合は良いですが、そうでない場合は計画的に使い分けしましょう。
sawaking
最新記事 by sawaking (全て見る)
- Yet Another Related Posts(関連する記事)表示プラグインを任意の位置に表示させる - 2023年3月27日
- WordPressのダッシュボードにメッセージを掲載する方法 - 2022年6月15日
- カスタムフィールドに入力した値を検索キーワードに含めるプラグイン - 2022年1月18日