WordPressのタイトルを省略する

WordPress

WordPressレッスンブック―ステップ・バイ・ステップ形式でマスターできる

個別の記事(single.php)では、画面右上に前後の記事へのリンクを表示しているんだけど、リンクタイトルが「ひとつまえ」「ひとつうしろ」ではどうにも分かりにくい。でも記事タイトルをそのまま使うと文字が長すぎてウザイので、記事タイトルを省略して表示する方法を考えてみたよ。

と言ってもPHPなんて知らないので、Googleで「wordpress タイトル 省略」で検索。すると「WordPressで最近のエントリーのタイトルを省略する | INO-IZM -blog-」なる目的にピッタリな記事を見つけられました。

上記のブログを参考にしてsingle.phpの該当部分を修正。最終的には下記のようなコードで、前後の記事タイトルの省略が可能になりました。

< ?php
    $newer_post_title = apply_filters('the_title', $newer_post->post_title, $newer_post);
    if( mb_strlen($newer_post_title) > 18 ){
        $title= mb_substr($newer_post_title,0,18); echo $title.…;
    }else{
        echo $newer_post_title;
    }
?>

日本語で書くと「apply_filters関数でプラグイン効果を適用させたタイトル文字列を取り出し、その文字列が18文字を超えるかどうか判定、18文字以上なら先頭18文字を取り出して表示、18文字以下ならそのまま表示」という動作になります。

これでほぼ所望の動作を達成できたんだけど、なぜかアルファベットが小文字になっちゃう不具合が判明。いまだに原因が分からないので、スチャっと理由が分かっちゃうPHPの偉い人がいらっしゃいましたら客室乗務員までお知らせ下さい。