エントリ内に設定したキーワードが含まれていれば、そのキーワードをBlog内検索に渡すリンク一覧を作成します。
なるべく簡単な記述で、擬似的にマルチカテゴリ効果を実装できます。
例:音楽、映画というカテゴリがあるFC2ブログで、某タレントのCDと映画について記事を書いたとします。カテゴリ=音楽で投稿しても、キーワード=映画が含まれていればキーワードリンクが書き込まれ、検索結果一覧でカテゴリ=映画の記事群に含まれて表示されるようになります。
<%category_name>
変数を使いカテゴリ名そのものをキーワードに設定できます。p
でclassName:
.keywordsが設定されます。FC2管理画面から、このクラスを使ってユーザ独自の装飾(位置調整・フォントサイズなど)が行えます。ビスコさんの複数カテゴリ アジカンの記事を参考に作成しました(多謝)
共有テンプレート wreatheに実装しています。
前準備として、ダウンロードしたファイルをメモ帳などで開いて編集します。(任意)
編集箇所はリンク群を書き出す位置folder_pos = "top";
の部分、他のスクリプトを組み込む場合など。
<meta http-equiv="content-script-type" content="text/javascript" />
<script src="<%url>file/keywords.js" type="text/javascript" charset="euc-jp"></script>
<script type="text/javascript">
var re = new RegExp(/(<!--category--><%category_name>|<!--/category-->dammy)/ig);
</script>
<!--/category-->
のすぐ後ろにdammyダミー(ヒットしないような語句なら他でも可)を記入してください。
<!--/category-->
のすぐ後ろにキーワード1|キーワード2|キーワード3
のように半角”|”で区切って記入してください。空白は含められません。また、最後には”|”はつけません。以下の例ではカテゴリ名に加え、”FC2”・”テンプレ”が管理者独自のキーワードになります。
<script type="text/javascript">
var re = new RegExp(/(<!--category--><%category_name>|<!--/category-->FC2|テンプレ)/ig);
</script>
<script type="text/javascript">
var re = new RegExp(/(FC2|テンプレ)/ig);
</script>
<!--topentry-->
〜
<div id="entryID<%topentry_no>">
<%topentry_body> // 本文表示部分
</div>
<script type="text/javascript">
pickupKeyword( "entryID<%topentry_no>" );
</script>
〜
<!--/topentry-->
entryID<%topentry_no>">
のIDが使用済みの場合は適宜修正してください。(すでに使用しているIDを使って呼出せる場合もあるのですが、テンプレート依存なのでケースバイケースです。よくわからない方は問い合わせてください。)
試作版としたのは、このスクリプトは使ってくださる方のHTMLにあわせて修正していくことで、より良くなるだろうと考えたからです。
例えば、書き出す要素を<ul>
にしたり、書き出す位置を元からあるカテゴリリンクに並べて表示させるようにするなど、サイトの統一感を追求できるかもしれません。あるいは、記事本体にキーワードである印をつけてユーザを誘導するようなしくみもできるかもしれません。また、FC2ブロック変数と組み合わせることで、まったく違うことができるかもしれません。(ちなみに本家で動かしているスクリプトは本文+エントリタイトルに含まれるキーワードも検索するようにしてます)
改造・再配布は自由ですので、ぜひ挑戦してみてください。また、アイディアがある方はご一報ください。