ナビゲーションリンクのタイトル文字列を切り詰める

個別エントリーのページ(コメントやトラバの表示されているページです)を見ると記事の一番頭の部分に

≪ 記事タイトル | メイン | 記事タイトル ≫

というナビゲーションのリンクがありますがこちらのタイトルが長かったりすると改行されて見栄えが悪くなります。

そこで長いタイトルを指定の文字数で切り詰めるカスタマイズをしました。

参考にさせていただいたサイト

クロスブリードさんのタイトルを指定文字数で切り詰め(mb_strimwidth)

ありがとうございました。

以下やり方

まずはMTがPHP化されていることが前提になります。

MTのPHP化は非常にメリットが多いのでされていない方はこれを機にされてみてはいかがでしょうか?

文字を切り詰める方法は
mb_strimwidth()
というPHPの関数で行います。

mb_strimwidth(『文字列』,『始まりのバイト位置』,『最大バイト数』,『カットした後に表示する文字列』,『エンコード』)と書きますので

個別エントリーのテンプレートを開き下記のナビゲーションリンク部分

<MTEntryPrevious>
<a href="<$MTEntryPermalink$>">« <$MTEntryTitle$></a> |
</MTEntryPrevious>
<a href="<$MTBlogURL$>">メイン</a>
<MTEntryNext>
| <a href="<$MTEntryPermalink$>"><$MTEntryTitle$> »</a>
</MTEntryNext>

こちらを

<MTEntryPrevious>
<a href="<$MTEntryPermalink$>">≪
<?php
$str = "<$MTEntryTitle$>";
$str = mb_strimwidth ($str, 0, 24, "…",utf8);
?>
<?php echo($str);?>
</a> |
</MTEntryPrevious>
<a href="<$MTBlogURL$>">メイン</a>
<MTEntryNext>
| <a href="<$MTEntryPermalink$>">
<?php
$str = "<$MTEntryTitle$>";
$str = mb_strimwidth ($str, 0, 24, "…",utf8);
?>
<?php echo($str);?>
≫</a>
</MTEntryNext>

に上書きしました。

内容を簡単に説明しますと

$str = "<$MTEntryTitle$>";

<$MTEntryTitle$>(←タイトルのこと)を$strに代入してから

mb_strimwidth ($str, 0, 24, "…",utf8)

$strの文字列の0バイトから24バイトまでの文字列に『…』をくっつけてutf8の文字コードで吐き出す。

という感じです。

メインをはさんで前と後ろの記事のリンクをそれぞれ同じ関数で切り詰めてます。

これで長いタイトルでも大丈夫!
他にもプラグインで切り詰める方法もあるようですがこちらのほうが簡単そうなのでこちらでやりました。

URL : http://www.eternalheart.com/cgi/mt/mt-tb.cgi/350

楽天アフィリエイト

eternalheart.com

デジカメプリント

うちの会社で始めました!