MENU

[WordPress] タイトルや本文の文字数を制限して表示する方法を解説

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

こんな感じに文字数を制限したい

特に記事タイトルならまだしも、本文の一部だけ表示したい場合は文字数制限が必須でしょう。

そこで今回は、出力するタイトルや本文の文字数を任意の文字数に制限する方法を紹介します。

目次から探す

記事タイトルを任意の文字数に制限する方法

WordPressでは記事のタイトルを取得する際に、the_title()もしくはget_the_title()を使用します。

普通に記事タイトルを出力する時ならどちらを使っても構いませんが、文字数制限をした上で出力する場合はget_the_title()を使用します。

実際に文字数制限を行って取得する場合は、以下のようにmb_substr関数と組み合わせます。

<?php echo mb_substr( get_the_title(), 0, 24); ?>

このようにすることで、任意の文字数で出力するタイトルの文字数を制限することができます。

上記サンプルコードだと最大24文字に制限されます。元のタイトルが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;
?>

上記のように、一度文字数による分岐を挟むことで、制限する文字数をオーバーしているとき(文字数を切り詰めるとき)だけテキストの末尾に...をつけることができます。

文字数の取得に使う関数は、必ずマルチバイト文字も一文字としてカウントできるmb_strlen関数を使うようにしてください。

これで、柔軟にタイトルや本文の文字数を制限して表示できるようになるはずです。

よかったらシェアしてね!
目次から探す