Movable Typeの「最近のブログ記事」をページ分割するカスタマイズを紹介します。
このカスタマイズを行えば、サイドバーの「最近のブログ記事」でページ送りができるようになります。ページングはAjaxで行います。
完成イメージ
以下にサンプルも用意しました。「最近のブログ記事」のページ送りを確認できます。
以下、「クラシックブログ」テーマをサンプルにしたカスタマイズを紹介します。
このカスタマイズにはPageButeプラグインが必要ですので、事前にインストールしてください。3.5.0(またはそれ以上)の利用をおすすめします。
このカスタマイズを応用すれば、たいていのリスト類はページ分割が行えると思います。
1.インデックステンプレートの作成
「最近のブログ記事」を出力するインデックステンプレートを作成します。テンプレートには以下の内容を貼り付けてください。テンプレート名は「最近のブログ記事」、出力ファイル名は「entries.html」としてください。保存後、再構築をしてください(再構築しないと後の手順でエラーになります)。
<div id="entries">
<div class="widget-recent-entries widget-archives widget">
<h3 class="widget-header">最近のブログ記事</h3>
<div class="widget-content">
<div class="nav">
<mt:ifPageBefore>
<$mt:PageBefore delim="« "$>
</mt:ifPageBefore>
<$mt:PageLists show_always="0"$>
<mt:ifPageNext>
<$mt:PageNext delim=" »"$>
</mt:ifPageNext>
</div>
<ul>
<mt:PageContents count="5" navi_count="3">
<mt:Entries lastn="20">
<li><a href="<$mt:EntryPermalink$>"><$mt:EntryTitle encode_html="1"$></a></li>
<$mt:PageSeparator$>
</mt:Entries>
</mt:PageContents>
</ul>
</div>
</div>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<script type="text/javascript">
//<![CDATA[
$(function(){
$('.widget-content .nav a').click(function(){
var url = $(this).attr('href');
$.ajaxSetup({
cache: false
});
$('#entries').load(url, function(text, status) {});
return false;
});
});
//]]>
</script>
お分かりと思いますが、ブログ記事一覧の中でPageButeのテンプレートタグを利用して、必要なページ分のファイルを出力しています。記事の表示件数などは以下の赤色部分で適宜調整してください。
<mt:PageContents count="5" navi_count="3">
<mt:Entries lastn="20">
PageButeプラグインで出力するページナビゲーションではAjaxによるページングが行えないので、テンプレート後半のjQueryで制御し、「最近のブログ記事」部分のみコンテンツを入れ替えるようにしています。
jQueryをすでに利用している場合は上記テンプレートに含まれる以下の部分を削除してください。
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
2.ウィジェットの作成
1項のインデックステンプレートで出力したファイルを読み込むウィジェットを作成します。「クラシックブログ」テーマを使っている場合は「最近のブログ記事」ウィジェットの内容を以下に変更してもかまいません。
<mt:SetVarBlock name="path"><mt:BlogSitePath>entries.html</mt:SetVarBlock>
<$mt:include file="$path"$>
3.CSSの追加
スタイルシートに以下の内容を追加します。
.widget-content .nav {
text-align: center;
}
4.mt-congig.cgiの変更
MT5.13以降で本カスタマイズを利用する場合は、mt-config.cgiに環境変数AllowFileIncludeを追加してください。
AllowFileInclude 1
5.再構築
すべての設定が終わったら全体を再構築してください。
6.注意事項
2項のMTIncludeタグにidentifierモディファイアは利用できません。identifierモディファイアでインクルードすると、インクルードしたページ全体がページ分割対象になってしまいます。