過去にもこの手の記事を書いたかもしれませんが、改めてまとめ直しました。
今回やりたいことは↓こんな感じです。
①本文を100文字で制限して表示したいが、100文字に満たない場合は全文表示して、超える場合は省略して文末に「……」の三点リーダーを表示。②本文にYoutubeの埋め込みiframeや画像のIMGタグ、改行タグやPタグなどがあると、途中でそれらのタグが切れてレイアウトがおかしくなることがあるので、HTMLタグは除去。
WordPressの本文からBRなどのタグを除去して100文字で表示
まずやりたこと②のHTMLタグの除去の方からです。<img>や<br>などのタグを個別に除去していく方法も考えられますが、strip_tags関数を使えば指定した文字列からHTMLタグを取り除くことができます。で、次に①の指定した文字数で本文を省略して表示する方法は、こちらはmb_substrで文字数を指定して取り出してあげれば良いです。
まとめると、以下のような記述になります。
1 2 3 4 5 6 7 8 9 10 11 |
<?php $my_content = get_the_content(); $my_content = strip_tags($my_content); if(mb_strlen($my_content)>100) { $content= mb_substr($my_content,0,100) ; echo $content. '……'; } else { echo $my_content; } ?> |
コメント