前回、投稿記事を一覧表示する方法についてメモしました。その内容に関連して、その一覧のタイトルが長くなってしまった場合、省略して短くしたうえで「・・・」続きますよ♪と表示する方法についてメモしました。
タイトルの文字を制限してみよう!
それでは、最初はとりあえず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」のところは自由に置き換えて、調整してみてください。