BLOG

ワードプレスやPHPで、Pタグを改行タグに変換する正規表現

ワードプレスのカスタムフィールドやコンテンツフィールドなどで、自動的にPタグなどが挿入されてしまうことがあります。本来は改行を入れたい場合など正規表現で変更することができるので紹介したいと思います。

ワードプレス等のCMSなどで悩ましいフィールドのPタグ

CMSなどの標準コンテンツエディタ(クラシックエディタ)やリッチテキストエディタなど、自分で入力する場合は問題ないのですが、クライアントの方などに入力想定の時など意外と邪魔なのがこのPタグ。
変数化したフィールド値をどうにかならないかということで正規表現で記述してみました。

PHPコード

下のコードはPHPの「preg_replace」を使って、「$content_text」のテキストからPタグを改行タグに変更したサンプルコードです。

<?php
 
  $content_text =
     '<p>段落1:テキストテキストテキストテキストテキストテキストテキスト</p>
      <p>段落2テキストテキストテキストテキストテキストテキストテキスト</p>
      改行1テキストテキストテキストテキストテキストテキストテキスト<br />
      <p>段落3テキストテキストテキストテキストテキストテキストテキスト</p>';
 
  echo preg_replace( '/<[pP].*?>(.*?)</[pP].*?>/u', '${1}<br>',$content_text );//ここ大事
 
?>
  • ※[]の記号は全角文字で記述していますので、半角に変更してご使用ください。

HTML出力

上のPHPのサンプルコードの出力結果が下のhtml出力になります。Pタグの行のみ改行に変更がされていることがわかります。

段落1:テキストテキストテキストテキストテキストテキストテキスト<br>
段落2テキストテキストテキストテキストテキストテキストテキスト<br>
改行1テキストテキストテキストテキストテキストテキストテキスト<br />
段落3テキストテキストテキストテキストテキストテキストテキスト<br>