TOPページに新着情報を表示させる時など、記事のタイトルを取得したい場面に多々出会います。
しかも、タイトルの文字数を制限して取得したい!
そんな場面が意外と多いです。
そこで今回は、タイトルの文字数を制限して取得する方法をまとめてみました。
タイトルの文字数を制限して取得したい方は参考にしてください。
それでは、見ていきましょう。
WordPressのタイトルを文字数制限して取得するコード
単純に文字数を制限してタイトルを取得するコードをご紹介します。
それが以下のコードです。
<?php echo mb_substr($post->post_title, 0, 20); ?>
タイトルを頭から20文字だけ取得するコードです。
取得する文字数は、上記の赤文字「20」の値を変更することで任意の文字数に変えられます。
30文字取得したい場合は「30」としてやればOKです。
単純に文字数をタイトルの制限して取得するなら上記のコードで十分です。
ただ、タイトルの文字数を制限すると、タイトルによっては単語の途中で切れてしまう可能性がでてきます。
「Wordpressのタイトルを文字数制」
文字数を制限して取得したタイトルが上記だったらどうでしょうか?
変な位置でタイトルが切れていてちょっとおかしいですよね。
タイトルに続きがあるのかないのかが分からない状態です。
不具合が生じているようにも見えます。
このような状況を回避するためには、前述したコードを少しカスタマイズしてやります。
タイトルが省略して表示されていると分かるようにする
タイトルが省略されていると分かるようにするためには、文字数を制限して取得したタイトルの最後に「…」を表示させ、続きがあることを読み手に伝えましょう。
以下のコードで、文字数を制限したタイトルの最後に「…」を表示させることができます。
<?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」の値を変更することで任意の文字数に変えられます。
値は二箇所に記述されていますので、両方変更する必要があります。
30文字にするなら両方の値を「30」に変更しましょう。
末尾の文字列は自由に変更できます。
上記コードの赤文字部分「…」を任意の文字列に変更してください。
こちらのコードは、タイトルが省略された場合のみ「…」が表示されます。
設定した文字数よりタイトルの文字数が少ない場合、末尾に「…」は表示されません。
まとめ
WordPressでタイトルの文字数を制限して取得する方法をご紹介しました。
TOPページの記事一覧やLOOPなどで、見た目を整えるためにタイトルの文字数を制限したい場面などに役立つコンテンツです。タイトルの文字数を制限したい方は、ぜひ参考にしてください。
コメントを残す