MTで作成しているブログに一連の特集記事のようなエントリーを作る方法。
公開日 : 2007-07-23 20:18:34
WebSigの準備しないと...(時間的にやばいけど、ちゃんと用意しますからね!) ということもあってMTを使ったサイト制作ネタを少しメモ的に書いておく。
SpecificFieldプラグイン, Path2AliasプラグインとIfMatchEntryプラグインの利用例
これまでに書きためたプラグインが結構な数になってきたので先日「Movable Typeプラグインアーカイブ」として纏めた。
エントリーにも書いたとおりこれまでは都度ブログのエントリーに作成、公開、修正等を書いて来たのでプラグインの「パーマリンク」が一定でないし古い情報のページからリンクを貼り直すのも大変。しかも途中でブログを一回移転してURLも変わっているし、SMOの観点からも良くないよね。ブックマークURLがばらけるから、ランクも上がりにくいし。
というのがMovable Typeプラグインアーカイブを作成した理由なのだが、同じようにエントリーを立て直すのも何だし、ちょっとした構成上/テンプレート上の工夫をしたのでメモしておく。
特定カテゴリーアーカイブの表示パターンを変更する
サイト制作の際にMTを使う際に「シンプルな構成を保ちメンテナンス性を犠牲にしない」ためのポイントの一つは「例外に引っぱられない」ことだと思う。特定の例外条件のためにブログをもう一つ立てたり挙げ句の果てにはカテゴリー毎にブログが乱立してしまいテンプレート数が増えてしまうとか、再構築が一度に出来なくなる等の構成にならないようにすべき(これは経験上から断言出来る) 。
今回特定のカテゴリーアーカイブとそのカテゴリーに属するエントリーにおける例外は以下の通り(上記の表参照)。
- カテゴリーアーカイブの上部に任意のエントリーを表示したい。今後は更新履歴等をこのエントリーを修正していき、更新の際には日付を変更してトップページやRSSで周知できるようにしたい。
- よって上部に表示させる任意のエントリーはトップページや右カラムの「最近のエントリー」「アーカイブ」「月別アーカイブ」「RSS」に表示させたい。
- 一方、各プラグインのページはトップページや右カラムの「最近のエントリー」「アーカイブ」「月別アーカイブ」「RSS」には表示されないようにしたい。
- 各プラグインは名称と概要のみ掲載し、詳細はプラグインを紹介した各エントリーのパーマリンクにリンクさせたい。
- 但し新規作成したプラグインはエントリーとして表示されるようにしたい。
- プラグインの表示順は任意に指定できるようにしたい。
言葉で説明するとややこしいが、上記の図をご覧頂くか他のカテゴリーアーカイブと比較していただくなりすると理解いただけると思う。
具体的なテンプレートにおけるプラグインの利用例
- 「Movable Type アーカイブ」と「Movable Typeプラグイン アーカイブ」では表示のパターンが違う。
→Compareプラグインで分岐→SpecificFieldプラグインで表示するエントリーとフィールド名を指定。カテゴリーアーカイブ・テンプレート
<MTIfEqual a="[MTCategoryID]" b="25"> <!--カテゴリーが「Movable Typeプラグイン」だったら...--> <h3><$MTSpecificField id="1958" field="title"$></h3> <$MTSpecificField id="1958" field="text"$> <!--MTSpecificFieldでID=1958のエントリーのタイトルと本文を固定表示--> <MTEntries sort_by="keywords" sort_order="ascend"> <!--エントリーのループ。プラグインの概要を「キーワード」欄でソート表示--> </MTEntries> <MTElse> <!--それ以外の通常のカテゴリーの通常の表示--> </MTElse> </MTIfEqual>
- 例えば新規作成した (はじめて公開する) 「Path2Alias」プラグインは「アーカイブ」ページに「Movable Typeで特定のPermalinkやArchiveLinkをエイリアスへのリンクに置換する(Path2Aliasプラグイン)。」として表示されているが、既に公開済みの「Background Rebuilder」プラグインのページは「アーカイブ」や「月別アーカイブ」、各ページ右カラムの「最近のエントリー」、RSS等には表示されない。
またエントリー「Movable Type プラグインアーカイブ公開します。」をクリックした時のリンク先は「Movable Typeプラグイン アーカイブ」のインデックスとなるようにしたい。
→Path2Aliasプラグインでエイリアスを指定。サイドバー(右カラム)・テンプレート(他)
<MTEntries lastn="25"> <MTIfMatchEntry search="Movable Typeプラグイン" item="text_more"> <!--text_moreフィールドに「Movable Typeプラグイン」が 含まれるエントリーは表示しない--> <MTElse> <li class="module-list-item"><a href="<$MTEntryPermalink Path2Alias="1"$>"> <!--特定のパスへのリンクをPath2Aliasプラグインで置換--> <!--本来はエントリーへのリンクだが「カテゴリーアーカイブ」へ飛ばす--> <$MTEntryTitle$></a></li> </MTElse> </MTIfMatchEntry> </MTEntries>
あとは...表示順の制御だが、これも実はオリジナルのプラグインを使っている。次回はこれを紹介したい(ドキュメントが整備出来次第公開したいと思う)。