[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] 配列からランダムに値を取得する
- [PHP] 配列へのヒアドキュメントまたはNowdocの追加
- [PHP] 変数を展開しないヒアドキュメント「Nowdoc」
- [PHP] Cookieの取得
- [PHP] 配列が連想配列かどうかを判定
- [PHP] 空配列の扱いと判定
- [PHP] 文字長がnバイト以下になるまで末尾の文字を1字づつカット
- [PHP] アルファベットの大文字・小文字変換を行う全関数
- [PHP] 1を1st、2を2nd、3を3rd、4以上を4thに変換する関数
- [PHP] 数値の先頭の0を取る4つの方法と速度
WordPressカテゴリーの投稿
- [WordPress] 記事が更新された回数を取得する
- [WordPress] ダッシュボードのウィジェットを表示オプションを使わずに非表示化する
- [WordPress] 関連記事をカテゴリーに基づきアイキャッチ画像つきで表示
- [WordPress] バックアッププラグインの特徴と機能比較
- [WordPress] タグ版wp_list_categories
- [WordPress] have_comments()がFALSEを返しコメントが表示されない現象
- [WordPress] 個別記事ページでカテゴリーを表示するときの目的別の方法
- [PHP] 文字長がnバイト以下になるまで末尾の文字を1字づつカット
- [WordPress] wp_insert_post()でhtmlタグが除去されるのを防ぐ
- [WordPress] カテゴリー・タグ・カスタムタクソノミーを外部から登録・編集する