
前回、投稿記事を一覧表示する方法についてメモしました。その内容に関連して、その一覧のタイトルが長くなってしまった場合、省略して短くしたうえで「・・・」続きますよ♪と表示する方法についてメモしました。
タイトルの文字を制限してみよう!
それでは、最初はとりあえず30文字くらいにしてみます。
編集するファイルはテーマが「Apollo」の場合ですと、content.phpになります。
PHPファイルを見てみると、h2タグ内でタイトルは下記のように記述されています。
[php]
 <?php } ?>
 <div class="loop-entry-content">
 <h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h2>
 <div class="entry-text">
 <?php the_excerpt(); ?>
 </div><!– l.oop-entry-text –>
 </div><!– .loop-entry-content –>
 [/php]
上記の内容を「条件分岐」を使ってタイトル部分を変更します。
条件分岐とは簡単に言うと…
if … (もし条件のとおりだったらAの処理を行う) A else … (条件のとおりでない場合はBの処理を行う) B endif
という記述の仕方をします。
content-page.phpのh2タグ内の記述を下記のように変更します。
[php]
 <h2><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php
 if(mb_strlen($post->post_title)>30) { $title= mb_substr($post->post_title,0,30) ; echo $title. ・・・ ;
 } else {echo $post->post_title;}?></a></h2>
 [/php]
mb_strlen()は文字を数える関数です。
 mb_substr()は先頭文字からの文字数をカウント。
もし投稿タイトルが30文字以上だったら、0~30文字を$titleの変数に置き換えた後、「・・・」を追加して表示するという内容になっています。
「30」のところは自由に置き換えて、調整してみてください。