2010年01月29日
ブログのサイドバーを見直す(ランキング/表示順/高速化)
このウェブサイトはMovable Type Enterprise + Power CMS for MTで構築・運用されていますが、先ほどこのブログ(Power CMS for MT ブログ)の右サイドバーの内容を修正しました。このカスタマイズについてご紹介します。
アクセスの多いブログ記事のリストを表示する
Power CMS for MTにはページビューを管理画面で確認できるアクセス解析機能が実装されています。ページビューの確認だけで流入経路等は確認できませんので Google Analytics 等を導入している方も多いのですが、Power CMS for MTのアクセス解析機能には次のような活用方法があります。
- アクセスの状況をテンプレートタグで出力できる(ホットな話題をサイトに表示することができます)。
- サイト内検索キーワードやクリックされたタグの状況が確認できる(検索にヒットした件数も把握できるので、サイト内検索のキーワードの状況を見ながら 検索結果に類似キーワードを表示する ようなカスタマイズを施すことができます)。
- タグクラウドを利用している場合は良くクリックされるタグをテンプレートタグで出力することができます。
下記の例は、直近7日間のアクセスの多いブログ記事を出力する例です。MTHotEntryCountタグを使うことでアクセス数(ページビュー)を出力することも可能です。
<ul>
<MTHotEntries period="last7days" class="entry" lastn="5">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle escape="html"$></a></li>
</MTHotEntries>
</ul>
カテゴリの表示項目・表示順を指定する
カテゴリ「その他」を追加した際に「その他」が最上部に表示されてしまいましたので、MTCategoriesタグでの出力をやめ、Power CMS for MTのMTItemGroupタグによる出力に切り替えました。
Power CMS for MTの「グループ」機能ではカテゴリの表示順を指定するだけでなく、複数のグループを作成してモジュールのように扱えます。カテゴリの他、ブログ、エントリ、ブログ/カテゴリ/エントリの混在といった各種グループを作成することが出来ます。
下記はグループ名「カテゴリ」のグループを指定順に表示させるテンプレートの記述例です。
<MTItemGroupCategories group="カテゴリ">
<MTIf tag="CategoryCount">
<li><a href="<$MTCategoryArchiveLink$>"><$MTCategoryLabel escape="html"$></a></li>
</MTIf>
</MTItemGroupCategories>
再構築の軽量化・高速化
このブログの右側のサイドバーは各アーカイブで共通ですから、この部分をファイルに出力してサーバーサイドでインクルードすることで軽量化・高速化を図ることが出来ますが、今回はPower CMS for MTのテンプレートキャッシュタグであるMTRequestCacheBlockタグを使うことで軽量化・高速化を図りました。
このテンプレートタグはkey,blog_idモディファイアでテンプレートの部分を識別して一度のリクエスト(mt.cgiへのリクエスト)で構築される各ページにおいて一度再構築したデータをメモリにキャッシュして2ページ目以降ではそのデータが使われるというものです(SQLのクエリ等は一切発行されないため、再構築の高速化が可能です)。
<MTRequestCacheBlock key="RightMenu">
<!--右側サイドバーのテンプレート-->
</MTRequestCacheBlock>
これによって、約1分かかっていた再構築が30秒前後と倍速になりました。大規模サイト等で再構築に時間がかかるとお悩みの方は是非お試しください。
- カテゴリー
- テンプレート作成Tips
コメントを投稿する