記事タイトルの一覧や本文の抜粋を表示する時に表示する文字数を制限したい時があるはずです。

特に記事タイトルならまだしも、本文の一部だけ表示したい場合は文字数制限が必須でしょう。
そこで今回は、出力するタイトルや本文の文字数を任意の文字数に制限する方法を紹介します。
記事タイトルを任意の文字数に制限する方法
WordPressでは記事のタイトルを取得する際に、the_title()
もしくはget_the_title()
を使用します。
普通に記事タイトルを出力する時ならどちらを使っても構いませんが、文字数制限をした上で出力する場合はget_the_title()
を使用します。
実際に文字数制限を行って取得する場合は、以下のようにmb_substr関数
と組み合わせます。
<?php echo mb_substr( get_the_title(), 0, 24); ?>
このようにすることで、任意の文字数で出力するタイトルの文字数を制限することができます。
制限する文字数を変更したい場合は、サンプルコードの24
の部分を任意の文字数に変更してください。
記事の本文を任意の文字数に制限する方法
記事の本文を任意の文字数に制限したい場合も、タイトルの文字数を制限する方法と全く同じです。
異なるのはタイトルの文字列を取得する関数get_the_title()
から記事の本文を取得する関数get_the_content()
に変わっただけです。
<?php echo mb_substr( get_the_content(), 0, 120); ?>
全く同じ方法で文字数を制限できるので、うまく使うといいでしょう。
文字数を制限した場合のみタイトル・本文の末尾に「…」をつける方法
文字数を制限してタイトルや本文を表示する場合、おそらく「これはタイトル…」のように、テキストの最後に...
を捨てることが多いかと思います。
この...
を、タイトルや本文の文字数を制限した場合にのみ表示したい場合、以下のようにif文を組み合わせると簡単に行えます。
<?php
$limits = 20;//制限する文字数
$text = get_the_title();//タイトルの場合
//$text = get_the_content();//本文の場合
//制限文字数を超えたときだけ切り詰めて、末尾に"..."をつける
if(mb_strlen($text,0,$limits) > $limits){
$text = mb_substr( $text, 0, $limits) . '...';
}
echo $text;
?>
上記のように、一度文字数による分岐を挟むことで、制限する文字数をオーバーしているとき(文字数を切り詰めるとき)だけテキストの末尾に...
をつけることができます。
これで、柔軟にタイトルや本文の文字数を制限して表示できるようになるはずです。