カテゴリー名をタイトルに挿入する

検索したときに、タイトルにeffy.jpと書いてあるだけでは何のことかわからないので、カテゴリー名もあったほうが親切かと思い、早速、タイトルにカテゴリー名を追加することにしました。

いまのタイトルはこんな感じ。

記事のタイトル | effy.jp」

それを、

記事のタイトル | カテゴリー名 | effy.jp」

こうしたい、ということです。

例によって、デフォルトのテーマには一切手を加えたくなかったので、子テーマのfunctions.phpに、

add_filter('bloginfo', 'cat_bloginfo', 1, 2);
function cat_bloginfo($result='', $show='') {
  if($show=='name' && !is_category()) {
    $cat = get_the_category();
    if(isset($cat[0])) {
      $result = $cat[0]->cat_name . ' | ' . $result;
    }
  }
  return $result;
}

と書いて、bloginfo関数を呼んだ時に、ブログ名の前にカテゴリー名も追加して返すようにフックを掛けてみました。

うまく行ったように思ったんですが、bloginfo関数は結構いろんなところで呼ばれているので、影響が大きすぎて嫌な感じでした。例えば、ヘッダのeffy.jpって文字の前にもカテゴリー名が追加されてしまう。

そこで、仕方なくデフォルトのテンプレートのheader.phpに手を加えて、記事タイトルとブログ名を表示する間に、これを挟みました。

// Add the category name.
if(is_single()) {
  $cat = get_the_category();
  if(isset($cat[0])) {
    echo $cat[0]->cat_name . ' | ';
  }
}

一応コレで目的は達成されたのだけれど、Wordpressをアップデートすると上書きされちゃうから面倒くさい…どなたか同じことを子テーマのfunctions.phpだけで実現できる方法教えてください!(泣)