FC2ブログの記事のタイトルにカテゴリ名を含める

たまたまFC2ブログをいくつかチェックしていたら、記事のタイトルに毎回「【○○(カテゴリ名)】」とか「[××(カテゴリ名)]」などの文字列を追加しているところを何か所か発見。このようなタイトルの付け方をしてるのは特に一部のまとめブログなんかに目立つものの、例えばはてなダイアリーなどもこのような「記事のタイトルにカテゴリ名を追加する」機能を搭載している。

上記のように手動で毎回カテゴリを記事名に追加する方法もいいんだけれど、FC2ブログならテンプレートをカスタマイズしてしまえば全自動で表示することができる。改造としては簡単な方なので、今回はその方法を紹介。(あくまでテンプレートのカスタマイズなので、RSSには表示されない点には注意。)

記事のページタイトルにカテゴリ名を追加する

現在使っているテンプレートのheadタグ部分に<title>~中略~</title>という部分があるはずなので、以下のコードを追加する。タイトルが変わるのはあくまで個別記事ページだけなので、他のページへの影響はなし。

<!--permanent_area-->【<!--topentry--><%topentry_category><!--/topentry-->】<!--/permanent_area-->

親子カテゴリを使用している場合は、以下のコードを入れることによって「【カテゴリ名】記事タイトル【親カテゴリ名】」という形にすることも可能。(もちろん順番や場所は好きに入れ替えられる。)親カテゴリがない(設定していない)場合はなにも表示されないので「今は使ってないけど、将来的に親子カテゴリを使うときのために入れておく」という形でも特に問題は起こらない。

<!--permanent_area--><!--topentry--><!--parent_category-->【<%topentry_parent_category>】<!--/parent_category--><!--/topentry--><!--/permanent_area-->

設定例

<title><!--permanent_area-->【<!--topentry--><%topentry_category><!--/topentry-->】<!--/permanent_area--><%sub_title><!--permanent_area--><!--topentry--><!--parent_category-->【<%topentry_parent_category>】<!--/parent_category--><!--/topentry--><!--/permanent_area--></title>

(これはあくまで例なので、ブログ名の変数などは設定されていない。そのため、そのままコピーして使うのはおすすめしない。)

一ヶ月記事を書かない場合への対処法

FC2ブログは一ヶ月間新しい記事を投稿しないと自動で広告記事が表示されてしまうので、それによって個別記事ページに記事がふたつ表示される状態になる。これによって何が起こるかというと、広告記事に設定されているカテゴリの「スポンサー広告」という文字が変数<%topentry_category>部分に表示されてしまうので、以下のようなタイトルになってしまう。

【スポンサー広告 ○○(カテゴリ名)】記事のタイトル
(親カテゴリの方は特に影響は受けない)

まあ「一ヶ月に最低1回以上は記事を投稿する」という人は特に影響はないので読み飛ばしてもらうとして、投稿頻度が低くて気になる人は(完全に対応するのは無理なものの)次のような方法で回避することもできる。

タイトルに表示するのは親カテゴリだけにする

親カテゴリは(広告記事に設定されておらず)勝手に挿入されることがないので、親カテゴリだけタイトルに追加する。具体的には2番目に紹介したコードのみをテンプレートのページタイトル部分に書き込むようにする。カテゴリ分けの方で工夫しておくなら、タイトルに表示させたいものを親カテゴリに設定しておくといいかもしれない。

注意点

「親子カテゴリ機能を使用してないと表示されない」「(本来の)カテゴリ名が表示できない」という問題があって、これを根本的に解決することはできない。とはいえ「表示させたい記事をある程度任意で選べる」(タイトルにカテゴリを表示させたい種類の記事にだけ、親カテゴリを設定しておく)という考え方もできるので、更新頻度や必要に応じてカスタマイズの方法を変えるのをおすすめしたい。

記事(エントリ)のタイトルにカテゴリを追加する

ページのタイトルだけではなくて、表示される記事の方にもカテゴリを表示させる方法。ほとんどのテンプレートには設定してるカテゴリが表示される部分があるはずだけど、あえて「目立たせたい」という場合などに使えるはず。

まず自分が使用しているテンプレートをチェックして、記事が表示される<!--topentry-->から<!--/topentry-->の間にある<%topentry_title>という変数を探す。(おそらく<!--topentry-->のすぐ下(近く)あたりにあって、h2やh3タグに囲われているはず。)その<%topentry_title>の前後に次の変数を追加する。

普通のカテゴリを設定する場合。

【<%topentry_category>】

親カテゴリを設定する場合。

<!--parent_category-->【<%topentry_parent_category>】<!--/parent_category-->

設定例

【<%topentry_category>】<%topentry_title><!--parent_category-->【<%topentry_parent_category>】<!--/parent_category-->

ページタイトル部分に追加するときと違って、こちらは広告記事が表示されても(広告記事にだけ【スポンサー広告】と表示される以外は)特に問題がないので、更新頻度を気にすることなくカスタマイズすることが可能。また、親カテゴリの方は(こちらは逆にページタイトルの方と同じように)設定されていない限りは「【】」を含めてなにも表示されません。