$post->post_content;は整形前の生のデータを抜き出してしまう

harada 2,605views 更新:2014年7月29日

これまで本文を抜き出すときは、echo mb_substr(strip_tags($post-> post_content), 0, 120);のように記述していました。

ですが本文をマークダウンで記述するようになって、整形前の'''などが表示されるようになってしまい困りました。

そこで検索したところ、echo $post->post_content; を避ける3つの理由リンクテキストという記事を見つけました。

この記事によると下記の3つの理由により$post->post_content;は使わないほうが良いようです。

echo $post->post_content; は wpautop によるフォーマット調整しないで出力する

投稿コンテンツにショートコードが含まれる場合、echo $post->post_content; はショートコードをそのまま出力する。

投稿がパスワード保護されている場合、echo $post->post_content; はコンテンツを出力する。

そのためこの記事を参考に、本文を抜き出している部分を下記のように変更しました。

<?php echo mb_substr(strip_tags(apply_filters('the_content', $post->post_content)), 0, 120); ?>

このようにすることで、整形後の本文を抜き出せるようになりました。

ログイン / 新規登録してコメントする

このソースコードをストックして後で利用したり、作業に利用したソースコードをまとめることができます。

こちらもお役に立つかもしれません