[PHP] Pタグ自動挿入関数をWordPressから流用

公開

スポンサーリンク

WordPressにはテキストを自動的にPタグで囲んでくれる機能があります。これはwpautop()という関数で提供されています。引数にテキストを渡すと、改行が1段のみで文章が続いている場合はBRタグに置き換え、改行が2回行われ1行空いている場合はPタグで囲んでくれます。テキストにhtmlタグが混じっていて、その部分にはPタグやBRタグの挿入が不要な場合は挿入を行わないというよくできた関数です。

例えば以下のような、文章があったとします。

foo bar
<div>
  test
</div>

この文章にPタグを挿入する場合、1行目の「foo bar」だけをPタグで囲み、DIVで囲まれた3行目の「hoge」は囲まないという処理が求められます。プレーンテキストのみの文章にPタグを挿入するのなら、preg_replace()を使い改行コードをPタグに置き換えればいいのですが、例のようなhtmlが一部に混じった文字列にPタグを挿入するとなればそうはいきません。wpautop()はこういった場合にうまく変換を行ってくれます。

最近、そういう一部にhtmlタグが混じった文字列をpタグで囲む必要があり、その時にWordPressのwpautop()を使えばいいんじゃないかと思って試したところ、非常にうまくいったので、その時の手順をメモしておきます。

wpautop()は、wp-includesフォルダ内のformatting.php内にあります。function wpautop()と、その下にあるfunction _autop_newline_preservation_helper()がPタグ自動挿入に必要な関数なので、この2つをコピー・ペーストします。実際に処理を行うときはwpautop( $text )と、引数に文字列を与えることでPタグの挿入された文字列が返ってきます。

いやあこれは便利だ。ありがたいことです。

スポンサーリンク

PHPカテゴリーの投稿

» PHPカテゴリーの記事をもっと見る

WordPressカテゴリーの投稿

» WordPressカテゴリーの記事をもっと見る


Comment