Arun's note

子供服を中心としたソーイングライフログ
<< SB メールフォームの設置 | TOP | twitterをサイドバーに表示する(@発言抜き) >>

SB カテゴリ/月別/検索結果でインデックス表示

カテゴリ別、月別アーカイブ、Search(検索)結果を表示するモードで、ページ上部にインデックス(目次)を表示するようにカスタマイズしました。リストされた見出しをクリックするとページ内の該当エントリに飛ぶようになっています。右下にはページナビゲーションも表示されます。

これらを実現するために、以下のプラグインをもりこんでいます。


  • パンくずリスト

  • カテゴリーINDEX化

  • 選択エントリリストのページ内参照化


(詳細は使用中プラグイン一覧にあります)

[パンくずリスト]
インデックスの1行目に表示される見出しに使用しています。
 ■カテゴリ別 : カテゴリ名を階層表示
 ■月別モード : 年月表示
 ■サーチ結果 : 検索語および検索結果件数表示

[カテゴリーINDEX化]
インデックス表示を上記3モードの場合に限定するロジックとして使用(表示用に個別テンプレートをつくる必要がありません)。本来は「カテゴリモードのときのみ表示」となっているので、直接ソースを変更し「月別アーカイブ」「検索結果」の場合も表示されるようにしました。

[ページ内参照化]
本来の {selected_entry_list} タグで表示されるインデックスはリンク先が各エントリ個別のパーマリンクだったので、これをページ内のアンカーに変更するために入れました。

ベースHTMLテンプレートにて、以下のように記述しています。

<div id="entry_area">
<!-- BEGIN cat_index -->
<div id="catindex">
<p>{topic_path}</p>
{selected_entry_list}
<div>
Page : {prev_page_link} {page_navi_exp} {next_page_link}
</div>
</div>
<!-- END cat_index -->
<!-- BEGIN topic_path -->
<!-- END topic_path -->
<!-- BEGIN selected_entry -->
<!-- END selected_entry -->
    :
    :

CategoryIndexで限定しているモード以外では各独自タグが表示させないように、すべての独自タグを「cat_index」ブロック内におさめています。けれども topic_path と selected_entry タグを使うためにはそれらのブロックを記述する必要があるので、 cat_index を閉じた後に BEGIN~END の記述をしています。

この「独自タグを独自ブロックの外側に置く」ことについては、 『Serene Bach オフィシャルガイド』 の P.178 に説明されていました。「独自タグを記述する場所に関しての制約はありません」とのこと。これを知ってかなり理想に近いインデックスを表示できるようになったので、時間はかかりましたが満足度の高いカスタマイズとなりました。
Serene Bach
-
| - | trackbacks (1) |

Trackback

Trackback URL :

Arun's note | SB カテゴリ/月別/検索結果でインデックス表示 | oryzaの環境備忘録
Arun's note | SB カテゴリ/月別/検索結果でインデックス表示
2008/07/29 01:04