記事一覧ページなどでタイトルや本文を表示する場合の、文字数制限の仕方についての備忘録です。
タイトルの文字数制限
単純に20文字で制限する
<?php echo mb_substr($post->post_title, 0, 20); ?>
上のコードで単純に20文字で制限できますが、ブツっと切れた感じで表示されます。
20文字で制限し、それを超えた場合は「…」を付ける
<?php if(mb_strlen($post->post_title, 'UTF-8')>20){ $title= mb_substr($post->post_title, 0, 20, 'UTF-8'); echo $title.'…'; }else{ echo $post->post_title; } ?>
上のコードで、表示する文字数を20文字超えたら後ろに「…」を付けて、超えなかったら、そのまま表示することが出来ます。
本文の文字数制限
本文に関しては、「the_excerpt()」を使って、抜粋を表示することが出来ますが、一応別の方法も書きます。
<?php //brだけ残す if(mb_strlen($post->post_content, 'UTF-8')>200){ $content= mb_substr(strip_tags($post->post_content, '<br>'), 0, 200, 'UTF-8'); echo $content.'……'; }else{ echo strip_tags($post->post_content, '<br>'); } //brとspanを残す if(mb_strlen($post->post_content, 'UTF-8')>200){ $content= mb_substr(strip_tags($post->post_content, '<br><span>'), 0, 200, 'UTF-8'); echo $content.'……'; }else{ echo strip_tags($post->post_content, '<br><span>'); } ?>
上のコードで、表示する文字数を200文字に制限することが出来ます。さらに、本文中のHTMLタグを外すことで、レイアウトを崩さずに表示することが出来ます。