スマホテンプレートでは動作しないFC2ブログの「ユーザータグ検索」を可能にするカスタマイズ

FC2ロゴ

 FC2ブログには「ユーザータグ」という機能があって、記事ごとに執筆者が任意のタグを付けることができる。タグはリンクさせることでブログ内の検索が可能になり、例えば旅行の記事に「旅行記」というタグを付けていけば、ブログの読者にその記事の一覧を表示させることが可能なのだ。
 似たようなことはカテゴリでも可能だが、カテゴリは1つの記事に最大2つまでしか設定できないに比べ、タグは最大10個まで設定できるというメリットがある。またユーザータグはカテゴリとは別機能なので、「カテゴリを横断して、特定のジャンルの記事を表示したい」という場合にも便利だ。実際、このブログでもユーザータグを活用している。

 このブログを例にすれば、「製品レビュー」というタグ検索ページに移動すれば、実際に今までレビューした記事の一覧ページに飛べる。レビューした商品はPCパーツやAV機器、ゲームの周辺機器などいくつかのカテゴリに分かれているが、それに関係なくレビュー記事だけをピックアップできるわけだ。

 とはいえ、そんなユーザータグにも弱点がある。というのもスマートフォン用テンプレートでは、検索機能が動かないのだ。タグの設定や表示自体は可能なのだが、なぜかリンク機能が動作せず、クエリを付けてもトップページに飛ばされるだけ。実際、上のリンクもスマートフォンからアクセスすると機能しないはずだ。
 これは随分前からこういう仕様になっているのだが、現在も修正や改良されずそのままで放置されている。サイトによってはすでにスマートフォンからのアクセスが多い今の時代、もうちょっと何とかならないのかと思ってしまう。

スマートフォン向けのブログでタグ検索を使う、いくつかの方法

 上記の問題に対処する方法もいちおうは存在し、それは「PC版とスマートフォン版のテンプレートを統一できる、レスポンシブテンプレートを使う」こと。要するにスマートフォン版でタグ検索が動かないなら、PC版のテンプレートで全部済ましてしまえばよい、という理屈だ。

 FC2ブログはテンプレートカスタマイズの自由度が高めなので、数は少ないながらレスポンシブデザイン対応のテンプレートも存在する。例えば以下のブログでは、そういったテンプレートを専門に配布している様子。

 とはいえ、多くのFC2ブログユーザーはレスポンシブなテンプレートは使用してないだろうし、例えば自分もPC版のテンプレートは完全自作のものなので差し替えるわけにはいかない。しっかりとカスタマイズ済みで、今更変えるのも大変……という人も多いはずだ。

 というわけで今普通に使っているスマートフォン用テンプレートで、タグ検索ができないか考えてみた。ユーザータグを検索結果へのリンクにする場合、PC版テンプレートなら変数を使って以下のようなタグを書き込む。

<!--topentry_tag--><!--tag_list-->
<a href="./?tag=<%topentry_tag_list_parsename>"><%topentry_tag_list_name></a>
<!--/tag_list--><!--/topentry_tag-->
<!--topentry_not_tag-->タグは設定されていません<!--/topentry_not_tag-->

 スマートフォン版テンプレートでも、この記述のままで動作自体はする。だが前述のように検索が動作せず、リンク先に飛んでもブログのトップページに移動してしまうのだ。ではどうするかという話になるが、リンク先をGoogle検索にしてしまえば良い、と判断した。具体的には以下のようにタグを編集する。

<!--topentry_tag--><!--tag_list-->
<a href="https://www.google.co.jp/search?q=site%3A<%enc_url>+<%topentry_tag_list_parsename>"><%topentry_tag_list_name></a>
<!--/tag_list--><!--/topentry_tag-->
<!--topentry_not_tag--><li class="tag-none">タグは設定されていません<!--/topentry_not_tag-->

 実際に自分のブログで試したところ、きちんと機能してGoogle検索に飛び、さらにそこからタグの付いた別の記事に移動できることを確認している。例えば記事の冒頭でも書いた「製品レビュー」タグへのGoogle検索へのリンクは、以下のような感じになる。

 自分のブログで完結せずGoogleを経由する必要があるが、「タグを設定した別の記事に移動できる」という目的は達成できるし、読者のクリック数も変わらない。記事の中にタグの単語が入っていないと、Googleで検索できるとは限らず正常に動作しないだろうが、それはユーザータグを(リンクという形で)テンプレートに表示することで達成されるだろう。スマートフォン版テンプレートのユーザータグの動作に困っている人は、参考にしてみてほしい。