WordPressのタイトルと本文の表示する文字数制限

記事一覧ページなどでタイトルや本文を表示する場合の、文字数制限の仕方についての備忘録です。

タイトルの文字数制限

単純に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タグを外すことで、レイアウトを崩さずに表示することが出来ます。