Movable Typeで作られたサイトでは、通常記事が日付順で整理されているため、関連のない記事を順に読むことになります。しかし、同じカテゴリー内の記事を続けて読めたほうが便利に違いありません。それを実現するのがこのプラグイン。
PreviousNextInCategory互換プラグイン
同一カテゴリーの前後のエントリーのリンクを出力するプラグイン
実は、MT3.3の時から同一カテゴリーの前後のリンクを出力するPreviousNextInCategoryというプラグインを使っていました。今回mt4に対応するものがないかと探してみると「PreviousNextInCategory互換プラグイン」として、junnama.alfasado.netで配布されているものがありました。このページにはプラグインの説明がざっくりとしか書かれていませんが、このプラグインただものではありません、オリジナルより高速化もされているそうです。
同一カテゴリーの前後のエントリーを出力する PreviousNextInCategory互換プラグイン。 1,000ページ程のブログの再構築で500エラーが出るってんで原因を探していてPreviousNextInCategory プラグインが怪しいっぽかったので同様の動作をしてより軽量(? 高速?) なものを作成しました。
PreviousNextInCategory互換プラグインの利用
Junnama Onlineからダウンロードし、解凍してできるPrevNextInCategoryホルダをmt/pluginsに入れます。あとはテンプレートにコードを追加するだけ。
MT3.3の時に、このサイトで使っていたのは以下のコードで、この場合、左に前、中央にトップへのリンク、右に次のページのリンクが出ます。ただし、content-navクラスでどのように表示されるかは、記憶にありません。
テンプレートにPrevNextInCategory互換が出力するリンクを貼る
[ PreviousNextInCategory オリジナル]
<p class="content-nav">
<MTEntryPreviousInCategory>
<a href="<$MTEntryPermalink$>">« <$MTEntryTitle remove_html="1"$></a> |
</MTEntryPreviousInCategory>
<a href="<$MTBlogURL$>">メイン</a>
<MTEntryNextInCategory> |
<a href="<$MTEntryPermalink$>"><$MTEntryTitle remove_html="1"$> »</a>
</MTEntryNextInCategory>
</p>
さらにもう1つ別のコードを・・・
MT4で現在このサイトで表示させているコード
テンプレートにPrevNextInCategory互換が出力するリンクを貼る
このサイトでは、ブログ記事テンプレートのcontent-inner直下に以下追加し、<$mt:Include module="プレビアスネクスト"$>
プレビアスネクストとしてテンプレートモジュール作成しました。prevnextクラスも暫定的にこちらでつけたものなので、不要、あるいは任意です。下のコードの場合、表示されるリンクは、左に前、中央にカテゴリーインデックス、右に次のページ。
プレビアスネクスト
<div class="prevnext"> <MTEntryPreviousInCategory> <a href="<$MTEntryPermalink$>">«<$MTEntryTitle$></a> </MTEntryPreviousInCategory> [ <a href="<$MTEntryPermalink archive_type="Category"$>"><$MTEntryCategory$></a> ] <MTEntryNextInCategory> <a href="<$MTEntryPermalink$>"><$MTEntryTitle$>»</a> </MTEntryNextInCategory> </div>
PreviousNextInCategoryの問題点
オリジナルのPreviousNextInCategoryでは、新たな投稿をした時、再構築をしないと1つ前のページからのリンクが自動で作成されないという問題がありました。これを解決するために「RebuildPrevNextInCategory.pl」というプラグインを追加していましたが、この「互換プラグイン」では、新たな投稿をした時でも1つ前のページからのリンクが自動で作成されているようです、素晴らしい。
3/17追記:同一カテゴリーの連続する投稿では問題なかったが、別のカテゴリーの記事を投稿すると、「1つ前のページからのリンクが自動で作成されない」という問題が起きてしまった。・・・ということは、今回も「RebuildPrevNextInCategory.pl」プラグインのお世話にならなくてはいけない。
RebuildPrevNextInCategory.pl
作者のページを確認すると、幸いなことにRebuildPrevNextInCategory.plはmt4.2に対応した新しいバーションに改訂されていました。早速組み込んでみましょう。
リンク先のページから、ダウンロードされるのはRebuildPrevNextInCategory.plそのものです。
それをmt/pluginsに入れ、問題に気づいたカテゴリー最後の記事を再保存すると、1つ前のページからのリンクが自動で作成されていました。これで大丈夫でしょう。RebuildPrevNextInCategory作者に感謝します。
不思議なことが、1つ。MT4ではこの問題に触れている方が少ないようです。もしかすると問題が起きていない方のほうが多いのか、そんな気がします。
- chez sugi
- カテゴリ内の前後のエントリーを自動的にリビルドする-2
RebuildPrevNextInCategory.pl での注意点
RebuildPrevNextInCategory.plの問題点の指摘と、それを回避する方法を提案された方のページによれば、カテゴリーを変更した場合は変更前後のページの再構築も必要のようです。
プラグインにしようとも、再構築を行うところのソースにパッチしようとも、同じ問題として気をつけないといけないのは、カテゴリーに変更があった際には、変更前後のそれらについても、再構築するようにしないと、前後のエントリーのページにリンクが残ったままになってしまうだろう
同一カテゴリ内の前後ページへの移動に困っている方も少ないないと思う
MT4に対応したPreviousNextInCategoryの代替プラグインを探している時、偶然このblogの記事へのリンクを掲載しているページを見つけました。ありがとう。
同一カテゴリ内の前後記事に移動するプラグイン:せとっちの備忘録(技術系)