FC2ブログ「親子カテゴリ」の階層の話とパンくずリスト

FC2ブログには 親子カテゴリ化 という機能があります。通常「親子」という場合には フォルダ階層(ディレクトリ) が関わっており、親のフォルダの下層に子のフォルダ、という形ですが、FC2では偽装しているだけで親も子も階層のレベルは同じですよ、というお話。パンくずリスト にも関わってきますので興味のある方はご覧ください。

FC2ブログのカテゴリ階層

以下のイラストが「感覚的」に恐らくみなさんが考えている構造ではないかと思います。

ですが 実際には違います。親と子のフォルダは同じ階層にあります。階層が上記の通りだとすればURLは

https://固有ID.blog.fc2.com/親カテゴリフォルダ名/子カテゴリフォルダ名.html

とかそんな感じになりますが、実際は

親カテゴリURL (上: 通常/ 下: カスタム)

https://固有ID.fc2.com/blog-category-カテゴリ番号.html
https://固有ID.fc2.com/c/カテゴリ名

子カテゴリURL (上: 通常/ 下: カスタム)

https://固有ID.fc2.com/blog-category-カテゴリ番号.html
https://固有ID.fc2.com/c/カテゴリ名

と、こうして全く同じ。階層になっている場合はスラッシュの数が異なりますのですぐにわかります。スラッシュで挟まれているのが ディレクトリ ですね。FC2ブログでは表示上そう見せているだけで、階層にはなっていない、というのが本質です。

これについては個人的には「上手にやったなぁ」という感じです。元々のシステムがあり、そこへユーザーさんから「カテゴリを階層化してほしい」というリクエストがあり、元のシステムを侵すことなく上手く導入したということですよね。

というわけで、FC2ブログ「カテゴリ」の特徴がまずこういったものだよ、という説明です。

パンくずリストとは

最近はみなさんこの パンくずリスト を自身のブログに取り入れたい、という向きがありますね。パンくずリストというのは ディレクトリ構造を明確にして行き来をスムースにする というものです。サイトの構造がどうなっているか、というのが大切です。

ということは、FC2の親子カテゴリは?

FC2親子カテゴリ表記の現状

テンプレート内に「カテゴリリスト」を導入されている方は、親子関係のカテゴリを開いてもらうとわかると思うんですが、通常、パンくずリストの表記は以下のようになります。

親カテゴリのパンくずリスト

リストの中には「子カテゴリ」を有するものもありますが、これはこれで正しいですよね。では子カテゴリの方。

子カテゴリのパンくずリスト

これを見て「ん????」となる方もいらっしゃると思うんですよ。先程の図は「親」の方ですから、当然「子」の方に属しているアイテムも含まれるわけですが、今度は「子」の方をダイレクトに指定しており、感覚的には「親の表記が無いのはおかしいのでは」となるかと思います。パンくずリストは階層を示すものなので、当然「親」へのリンクが表記されるはず、と考えるわけですね。

ですが現実的にはこれは 合っている という説明を事前に行っています。実際には 親カテゴリ > 子カテゴリ という階層ではないのですから、これで合ってる。

とは言ってもやっぱり感覚的にはおかしいわけですよ (´・ω・`)
誰もが「階層」「ディレクトリ」を意識して運営しているわけではないですし、親子関係のパンくずなら親へのリンクは要るだろう、と考えるのが普通。FC2ブロガー以外の方が見ても同じ感覚のはずです。

既存の対応策はあるか

既知のものでは2つあります。ひとつは「FC2独自変数の特性を利用したもの」もうひとつは「JSを利用したもの」です。このいずれも得られる結果は同じです。これらの方法を用いると以下のようになります。結論から言うと不完全。パターンがあるので説明します。

パターン1 - 最初のアイテムが「親カテゴリ」に属している場合」

親カテゴリのパンくずリスト
子カテゴリのパンくずリスト

「最初のアイテム」というのは、親を開いたときに一番左にある記事のことです。たいていはそのカテゴリの中で最も新しい記事ですね。FC2ブログには昇降を逆にする設定がありますので、ある方にとっては最古の記事の可能性もありますが、とにかく一番左、もし縦並びリストならば一番上の記事、ということです。

親はちゃんと親カテゴリがカレント(現在地)になっており、子の方もちゃんとカレントが「子」、そして上の階層として(何度も言いますが偽装です)「親」のリンクも表記されています。これがパターン1で、これなら正しい形と言えますよね。

パターン2 - 最初のアイテムが「子カテゴリ」に属している場合

親カテゴリのパンくずリスト
子カテゴリのパンくずリスト

これおかしいんですが、どちらがどうかみなさんわかりますかね (∵`)
正解: 子カテゴリは正しい、親カテゴリがおかしい

親カテゴリのページを開いている、ということは、カテゴリリストの中から「親カテゴリです」の名称をクリックしているということですよね。なのにカレントが子の「子カテゴリです」になっています。これはどう考えてもおかしい (´・ω・`)
そしてカレントが「子カテゴリ」ならば全てのアイテムがその子カテゴリに属しているはずですが、そうではない。

こうして、一番最初のアイテムが たまたま 子カテゴリに属していた場合には、親の方のパンくずリストが狂ってしまうんですね。最初のアイテムが「親」か「子」か、なんてのはコントロール不可能ですから、そういった事情でやはり不完全。

まとめ

本記事中のスクリーンショットは次回申請予定のテンプレートですが、この点をJSで解消しています。で、迷ったんですが、今回こちらのJSについては公開・共有を行いません。理由は非常にいやらしい方法なのと、条件があるんですね。これが「誰のどんなテンプレートでもOK」であれば公開したんですが、今回は条件つきのため見送ります。

パンくずリスト表記について「なんとなくしっくりこないなぁ」と思っていた方ももしかしたら居るかもしれません。逆に「考えたことなかった」という方も(笑)

カテゴリについてはFC2ブログの構造に係る内容なので、ちょっとこれ以上どうこうは難しいな、というところです。次回作のsneak peekも併せ、カテゴリ表記に関する記事でござしました ('0')/

コメントに関する注意事項
  • テンプレートに関するご質問は各テンプレート専用記事でのみ受付致します。また、よくある質問をまとめているページも事前にご参照ください。
  • 専門的なご質問の場合、記事内容と明らかに関連の無い内容はお控えください(雑談の場合はその限りではありません)
  • 第三者が不快と感じる内容や論調でのコメントはお控えください(性的,高圧的,暴力的など)