MT4.27 #8 同一カテゴリー内の前後のリンク

| トラックバック(0)

Movable Typeで作られたサイトでは、通常記事が日付順で整理されているため、関連のない記事を順に読むことになります。しかし、同じカテゴリー内の記事を続けて読めたほうが便利に違いありません。それを実現するのがこのプラグイン。

PreviousNextInCategory互換プラグイン

同一カテゴリーの前後のエントリーのリンクを出力するプラグイン

実は、MT3.3の時から同一カテゴリーの前後のリンクを出力するPreviousNextInCategoryというプラグインを使っていました。今回mt4に対応するものがないかと探してみると「PreviousNextInCategory互換プラグイン」として、junnama.alfasado.netで配布されているものがありました。このページにはプラグインの説明がざっくりとしか書かれていませんが、このプラグインただものではありません、オリジナルより高速化もされているそうです。

同一カテゴリーの前後のエントリーを出力する PreviousNextInCategory互換プラグイン。 1,000ページ程のブログの再構築で500エラーが出るってんで原因を探していてPreviousNextInCategory プラグインが怪しいっぽかったので同様の動作をしてより軽量(? 高速?) なものを作成しました。

Junnama Online

PreviousNextInCategory互換プラグインの利用

Junnama Onlineからダウンロードし、解凍してできるPrevNextInCategoryホルダをmt/pluginsに入れます。あとはテンプレートにコードを追加するだけ。

MT3.3の時に、このサイトで使っていたのは以下のコードで、この場合、左に前、中央にトップへのリンク、右に次のページのリンクが出ます。ただし、content-navクラスでどのように表示されるかは、記憶にありません。

テンプレートにPrevNextInCategory互換が出力するリンクを貼る
[ PreviousNextInCategory オリジナル]
<p class="content-nav">
	<MTEntryPreviousInCategory>
	<a href="<$MTEntryPermalink$>">&laquo; <$MTEntryTitle remove_html="1"$></a> |
	</MTEntryPreviousInCategory>
	<a href="<$MTBlogURL$>">メイン</a>
	<MTEntryNextInCategory> |
	<a href="<$MTEntryPermalink$>"><$MTEntryTitle remove_html="1"$> &raquo;</a>
	</MTEntryNextInCategory> 
</p>

さらにもう1つ別のコードを・・・

MT4で現在このサイトで表示させているコード

テンプレートにPrevNextInCategory互換が出力するリンクを貼る
このサイトでは、ブログ記事テンプレートのcontent-inner直下に以下追加し、
<$mt:Include module="プレビアスネクスト"$>

プレビアスネクストとしてテンプレートモジュール作成しました。prevnextクラスも暫定的にこちらでつけたものなので、不要、あるいは任意です。下のコードの場合、表示されるリンクは、左に前、中央にカテゴリーインデックス、右に次のページ。

プレビアスネクスト
<div class="prevnext">
<MTEntryPreviousInCategory>
 <a href="<$MTEntryPermalink$>">&laquo;<$MTEntryTitle$></a>
</MTEntryPreviousInCategory>
 [ <a href="<$MTEntryPermalink archive_type="Category"$>"><$MTEntryCategory$></a> ]
<MTEntryNextInCategory>
 <a href="<$MTEntryPermalink$>"><$MTEntryTitle$>&raquo;</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ではこの問題に触れている方が少ないようです。もしかすると問題が起きていない方のほうが多いのか、そんな気がします。

RebuildPrevNextInCategory.pl での注意点

RebuildPrevNextInCategory.plの問題点の指摘と、それを回避する方法を提案された方のページによれば、カテゴリーを変更した場合は変更前後のページの再構築も必要のようです。

プラグインにしようとも、再構築を行うところのソースにパッチしようとも、同じ問題として気をつけないといけないのは、カテゴリーに変更があった際には、変更前後のそれらについても、再構築するようにしないと、前後のエントリーのページにリンクが残ったままになってしまうだろう

hPod

同一カテゴリ内の前後ページへの移動に困っている方も少ないないと思う

MT4に対応したPreviousNextInCategoryの代替プラグインを探している時、偶然このblogの記事へのリンクを掲載しているページを見つけました。ありがとう。
同一カテゴリ内の前後記事に移動するプラグイン:せとっちの備忘録(技術系)

[関連エントリー]

トラックバック(0)

トラックバックURL: http://blog.fab51.com/mt/mt-tb.cgi/252

INFO

2010年3月14日 作成:ita

日付順:前の記事は
MT4.27 #7 コメントフォームの修正

日付順:次の記事は
MT4.27 #9 メールフォームの設置

最近の記事:インデックスページ
記事の一覧:アーカイブページ

アーカイブ

ウェブページ

  • .