記事を書いた後に、意図せずにpタグが挿入されている!?
WordPressによる「wpautop」。
wpautop
WordPressで記事を作成している時、想定外にレイアウトが変わってしまうことがある。
よくあるのが、ブログ投稿時の「pタグの自動挿入」。
これはデザイナーにとっては(もしかしたらブロガーにも)悩ましく、特にCSSでpタグにスタイルを設定していると、思わぬ表示となり、場合によってはありがた迷惑に。
ただし、無料で使えるありがたいツールに文句を言いたくはない。原因さえわかれば、対処方法はとても簡単。
原因はWordPressによる、pタグ自動挿入の「wpautop」関数。
WordPressではデフォルト仕様で、投稿画面でエンターキーを押すと、自動的にpタグが挿入される。「Shift」+「Enter」では改行のタグである<br>が挿入される。
<p>タグと<br>タグの意味。
- pタグは文章の段落を意味する「Paragraph」を略とするHTMLのタグ。
ブラウザやWordPressテーマのCSSにより、上下にスペースが開く。 - brタグは文章の改行を意味する「Break」を略とするHTMLのタグ。
自分でCSSなどでスタイルを指定しない限り、通常は上下にスペースは入らない。
これはHTMLを使った文章のごく初期のキホンのキ。
pタグを入れたくない場合、追記するコードはこれだけ。
pタグの自動挿入を無くすコード。
投稿の本文内で自動挿入したくない場合。
<?php remove_filter('the_content', 'wpautop'); ?>
上記は文字通り、投稿の本文を取得・表示するテンプレートタグである「the_content」から、WordPressが自動的にpタグを追加する「Auto p」を「Remove(削除)」するコード。
これをpタグを自動挿入したくないループ内(single.phpなど)に追記するだけで良い。「the_content();」の前にでも追加すればpタグは入らない。
例) single.phpなどへ。
<?php remove_filter('the_content', 'wpautop'); ?>
<?php the_content(); ?>
投稿の抜粋内で自動挿入したくない場合。
抜粋内のpタグ削除は、「the_excerpt」で可能。
例) archive.phpなどへ。
<?php remove_filter('the_excerpt', 'wpautop'); ?>
<?php the_excerpt(); ?>
全ての投稿内で自動挿入したくない場合。
全ての投稿でpタグを挿入したくない場合は、functions.phpに記述すれば良い。
functions.phpに色々なコードが記述されている場合は、1行1行にPHPの開始・終了タグを書かなくても、全体をくくる開始タグの「<?php 」と閉じタグの「 ?>」の中(1行目と最終行)に記述されていればOK。
- 最終行の閉じタグ「 ?>」は省略も可。
- 他にも「remove_filter()」関数があれば、その記述箇所へまとめておくと後々わかりやすい。
例) functions.phpへ。
<?php
remove_filter('the_content', 'wpautop');
remove_filter('the_excerpt', 'wpautop');
remove_filter('the_title', 'wpautop');
remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
といった感じにしておくと、コードが見やすくなる。
以上、参考になれば幸いです。
※Webデザインは実務数年、職業訓練校講師数年、フリーランス数年、計15年以上のキャリアがありますが、一気にがぁっと書いているので「です・ます調」ではありません。(元々はメモ書きでした。) ※事実や経験、調査や検証を基にしていますが、万一なにかしら不備・不足などがありましたらすみません。お知らせいただければ訂正いたします。 ※写真は主にUnsplashやPixabayのフリー素材を利用させていただいております。その他の写真や動画もフリー素材やパブリックドメイン、もしくは自前のものを使用しております。
WordPress 関連メモ。
- Simple Image XML Sitemapの使い方の例。画像サイトマップをGoogleへ。
- WordPressのリビジョン。正しく表示されないときの復元の例。
- PerplexityとWordPressの名前と意味合い。著作権と知的財産。
- WordPressのセキュリティ対策。脆弱性の疑問と強化設定。
- WordPressのテーマ。有料と無料の違いと、ウェブサイトの例。
- Googleアナリティクスでの自分のアクセスを除外。【WordPress】
- WordPressの不要なメディアファイルを削除する方法。Media Cleaner。
- WordPress 画像のキャプション表示を削除したい場合。
- WordPressのログインパスワードを変更する方法。セキュリティ対策にも。
- WordPressのトップページがindex.phpでもfront-page.phpでもhome.phpでも問題はない。
- reCAPTCHAの導入例と、バッジ(マーク)をCSSで非表示に。
- WordPressから届く「モデレートしてください」を止めたい。
- WordPress投稿の目次が消えたら!Table of Contents Plusの表示方法。
- 「データベース接続確立エラー」の対処。wp-configに問題がないとき。
- WordPressの投稿IDを確認したい時は、ここを見るのが簡単。
- WordPressのセキュリティをオンラインチェック、「Sucuri」。
- WordPress pタグを投稿記事から削除する1行のコード。
- アイキャッチ画像(WordPressのサムネイル画像)がない場合、いらない場合は、これで解決。
- さくらインターネットのコンテンツブーストの設定方法。(数ステップで。)
- さくらのサーバーからさくらのサーバーへの引越しで、「DNSゾーンが既に登録されています」のエラーが出たとき。
- WordPressで動画が再生されない!ときの対処。
- WordPressの投稿とカスタム投稿を振り分けたい時はこれで解決。(条件分岐できない時の対処方法。)
- 辿ったリンクは期限が切れています!? WordPressテーマのアップロードエラー対処。
- PHPの配列の括弧の違いは?WordPressでよく見るarray()と[]。
- Contact Form 7に確認画面がない!の対処方法。CSSか固定ページで。
- WordPressの引越しは、ささっとAll-in-One WP Migrationで。
- WordPressの検索ハイライト表示の仕方。(functions.phpに追加するだけ。)
- 引越しなどで、WordPressのメディアが消えた場合の、Moving Media Library。